当前位置: 首页 > wzjs >正文

门户地方网站 策略搜索引擎优化的重要性

门户地方网站 策略,搜索引擎优化的重要性,网站受到攻击会怎么样,wordpress收不到一.背景 1.问题提出 我们在一个父项目下写了两个子项目,需要两个子项目之间相互调用。我们可以发送HTTP请求来获取我们想要的资源,具体实现的方法有很多,可以用HttpURLConnection、HttpClient、Okhttp、 RestTemplate等。 举个例子&#x…

一.背景

1.问题提出

我们在一个父项目下写了两个子项目,需要两个子项目之间相互调用。我们可以发送HTTP请求来获取我们想要的资源,具体实现的方法有很多,可以用HttpURLConnectionHttpClientOkhttpRestTemplate等。

举个例子,我们想要通过订单表中的商品Id来查询商品的详细信息,我们需要向商品所在的模块发送HTTP请求,通过请求获取商品的详细信息:

@Resource
RestTemplate restTemplate;@RequestMapping("/{orderId}")
public OrderInfo getOrderById(@PathVariable("orderId") Integer orderId){OrderInfo orderInfo = orderMapper.selectByOrderId(orderId);String url="http://127.0.0.1:9090/product/"+orderInfo.getProductId();ProductInfo productInfo = restTemplate.getForObject(url, ProductInfo.class);orderInfo.setProductInfo(productInfo);return orderInfo;
}

上面的实现有一个问题:如果机器发生变故,url会跟着变更。url变来变去,我们写的代码就要进行修改,因此我们要想办法解决这个问题。

2.解决思路

注册中心可以解决这个问题。

服务启动或变更的时候,向注册中心报道,注册中心就存储着应用和IP的关系。

当我们想要调用方法的时候,只需要向注册中心去获取服务方的IP就行了。

那什么是注册中心?

注册中心(Service Registry) 是分布式系统(尤其是微服务架构)中的核心组件,主要用于解决服务实例的 自动发现、动态管理和路由调度 问题。它就像一个 “电话簿”,记录着所有服务实例的网络地址(IP、端口等信息),并实时更新这些信息,确保服务之间可以快速、可靠地通信。

注册中心有三种角色:服务提供者(Server)服务消费者(Client)服务注册中心(Registry)

它们之间的关系可以通过两个概念来描述:

服务注册服务提供者在启动的时候向服务注册中心(Registry)注册自身服务,并向服务注册中心(Registry)定期发送心跳汇报存好情况。

服务发现服务消费者注册中心查询服务提供者的地址,并通过该地址调用服务提供者的接口。

3.CAP理论

Consistency,一致性:这里的一致性指的是强一致性,所有结点在同一时间具有相同的数据;

Availability,可用性:保证每个请求都有响应;

Partition Tolerance,分区容错性:分布式系统中的节点之间出现网络分区(即部分节点无法通信)时,系统仍能继续运行。

这个CAP是一个“不可能三角”,即这三个要求不能同时实现,要想实现CA就不能实现P,要实现AP就不能实现C。

在微服务系统中,P这一点是必须保证的,所有A和C只能实现一个。

二.Eureka

Eureka(尤里卡)曾是SpringCloud官方默认的注册中心,其符合CAP理论中的AP,即保证分布式系统的可用性。

1.搭建服务中心

1)创建项目;

2)pom加入Eureka的依赖:

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

3)配置文件,加入相关配置:

server:port: 10010
spring:application:name: eureka-server
eureka:instance:hostname: localhostclient:fetch-registry: false # 表示是否从Eureka Server获取注册信息,默认为true.因为这是一个单点的Eureka Server,不需要同步其他的Eureka Server节点的数据,这里设置为falseregister-with-eureka: false # 表示是否将自己注册到Eureka Server,默认为true.由于当前应用就是Eureka Server,故而设置为false.service-url:# 设置Eureka Server的地址,查询服务和注册服务都需要依赖这个地址defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
logging:pattern:console: '%d{MM-dd HH:mm:ss.SSS} %c %M %L [%thread] %m%n'

4)启动类,开启Eureka的功能:

@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class,args);}
}

此时我们启动项目,在浏览器上输入:127.0.0.1:10010,如果出现以下页面说明成功了:

2.服务注册

1)加入Eureka依赖:

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2)修改配置信息:

配置服务的名称和eureka地址

spring:application:name: product-service
eureka:client:service-url:defaultZone: http://127.0.0.1:10010/eureka

3)启动程序

启动程序后出现下面的界面说明注册成功了:

注意红线圈出的部分,这个Application的名字与刚刚配置的名字是一样的:product-service。

3.服务发现

1)加入Eureka依赖:

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2)修改配置信息:

spring:application:name: order-service
eureka:client:service-url:defaultZone: http://127.0.0.1:10010/eureka

3)修改远程调用的代码

修改本篇文章一开始提出的问题代码:

@Resource
RestTemplate restTemplate;@Resource
DiscoveryClient discoveryClient;@RequestMapping("/{orderId}")
public OrderInfo getOrderById(@PathVariable("orderId") Integer orderId){OrderInfo orderInfo = orderMapper.selectByOrderId(orderId);//从eureka中获取服务列表List<ServiceInstance> instances = discoveryClient.getInstances("product-service");//写法一:EurekaServiceInstance instance=(EurekaServiceInstance)instances.get(0);String url=instance.getUri()+"/product/"+orderInfo.getProductId();//写法二://String uri = instances.get(0).getUri().toString();//String url=uri+"/product/"+orderInfo.getProductId();ProductInfo productInfo = restTemplate.getForObject(url, ProductInfo.class);orderInfo.setProductInfo(productInfo);return orderInfo;
}

两种写法都可以。 

4)启动程序

如果出现下面界面就说明成功了:


文章转载自:

http://rwqqYlfL.gnjkn.cn
http://U0kEJEWe.gnjkn.cn
http://sjjfu3iO.gnjkn.cn
http://zKvJlzhm.gnjkn.cn
http://1nr8iFZb.gnjkn.cn
http://td5V2zj3.gnjkn.cn
http://DHjb9J2t.gnjkn.cn
http://wAxM0UPB.gnjkn.cn
http://yrWrW7fk.gnjkn.cn
http://IlwWNVcs.gnjkn.cn
http://PmbHuGHy.gnjkn.cn
http://tBdYDrCd.gnjkn.cn
http://cpUV26JB.gnjkn.cn
http://clbKxU0i.gnjkn.cn
http://0RLFVt2w.gnjkn.cn
http://qnX82MgI.gnjkn.cn
http://toJbm20s.gnjkn.cn
http://Odao4PTn.gnjkn.cn
http://qrWL3Sxx.gnjkn.cn
http://EPqjmGSe.gnjkn.cn
http://5dorYgn5.gnjkn.cn
http://UNfsQJMk.gnjkn.cn
http://3cSafBph.gnjkn.cn
http://vFOYvCgv.gnjkn.cn
http://ZWWiyTET.gnjkn.cn
http://XllhAxt1.gnjkn.cn
http://dbk1p6Zc.gnjkn.cn
http://r5IFnubm.gnjkn.cn
http://HuBykfqb.gnjkn.cn
http://BDuw9vst.gnjkn.cn
http://www.dtcms.com/wzjs/631184.html

相关文章:

  • 海珠建网站公江门seo推广公司
  • 南京网站制作公司报价设计logo理念
  • 企业网站那几点重要江苏省住房和城乡建设厅假网站
  • 动态ip怎么做网站宁波公司网站建设
  • 萧县城乡建设局网站室内设计平面图库
  • 简洁大方的网站首页做的ASP网站手机
  • 旅游网站的广告预算怎么做上海企业信息查询系统官网
  • 网站如何做标题优化嵌入式开发是什么
  • 网站后台怎么打开丰台企业网站建设
  • 微网站可以自己做吗做转发赚钱的网站
  • 商丘给企业做网站的公司外贸平台有哪些?
  • 做网站要学舆情网站直接打开怎么弄
  • 网站建设合同要交印花吗海外交易平台有哪些
  • 沈阳公司网站设计制作企业建设网站的方式
  • 如何购买网站虚拟主机海报自动设计网站
  • 哈尔滨 高端网站建设北京朝阳双桥网站建设
  • 网站后台维护一般要怎么做网站内容的排版布局
  • 江西网站定制公司苏州网上商城搭建
  • 如何建立淘宝客网站怎么推广我的网站吗
  • 分销网站建设wordpress自适应方法
  • 网站让百度收录应该怎么做黑马程序员培训机构官网
  • 网站搭建多少钱徐州百都网络非常好WordPress链接点击次数统计
  • 常州 招网站开发wordpress 被镜像
  • 百度蜘蛛抓取网站wordpress 中文数据库
  • 佛山网站建设公司有哪些?线上策划方案
  • 石家庄大型网站设计公司网页自动跳转
  • 邯郸网站建设效果如何推广自己的店铺
  • 建论坛网站需要多少空间网址没封的来一个
  • 石家庄建设银行河北分行招聘网站做网站设计师
  • 山东兴润建设集团网站专注服务于站长和网站的信息平台.