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

站长工具 站长之家WordPress快捷登录如何关闭

站长工具 站长之家,WordPress快捷登录如何关闭,视频付费点播网站怎么做,手机之家下载安装目录 Eureka 介绍 角色 实现流程 单机构建 注册中心 服务提供者 服务消费者 集群搭建 注册中心 服务提供者 自我保护机制 原理分析 Eureka 介绍 Eureka是spring cloud中的一个负责服务注册与发现的组件,本身是基于REST的服务,同时还提供了…

目录

Eureka

介绍

角色

实现流程

单机构建

注册中心

服务提供者

服务消费者

集群搭建

注册中心

服务提供者

自我保护机制

原理分析


Eureka

介绍

Eureka是spring cloud中的一个负责服务注册与发现的组件,本身是基于REST的服务,同时还提供了负载均衡、故障转移等能力。

角色

分为3个角色:服务中心、服务提供者、服务消费者

Eureka Server:服务器端,它提供了服务的注册和发现功能,即实现服务的治理。

Eureka Provider:服务提供者,它将自身服务注册到服务中心,以便“服务消费者”能通过服务器端提供的服务清单来调用它。

Eureka Consumer:服务消费者,它从Eureka获取“已注册的服务列表”,消费服务

实现流程

1.搭建一个Eureka Server作为服务注册中心

2.服务提供者启动时,把当前服务器的信息以服务名的方式注册到服务注册中心

3.服务消费者启动时,把当前服务注册到服务注册中心

4.服务消费者会获取一份可用服务列表,该列表包含了所有注册到服务注册中心的服务信息(包含服务提供者和自身的消息)

5.在获得了可用服务列表后,服务消费者通过 HTTP 或消息中间件远程调用服务提供者提供的服务

        服务注册中心(Eureka Server)所扮演的角色十分重要,它是服务提供者和服务消费者之间的桥梁。服务提供者只有将自己的服务注册到服务注册中心才可能被服务消费者调用,而服务消费者也只有通过服务注册中心获取可用服务列表后,才能调用所需的服务

单机构建

注册中心

搭建一个Eureka Server作为服务注册中心

1.在pom文件中添加Eureka Server依赖

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

2.在application.yml中添加配置

server:port: 7001 #端口
# 单机版
eureka:instance:hostname: localhost  #eureka服务端的实例名字   单机服务名称client:register-with-eureka: false    #表示不向注册中心注册自己fetch-registry: false   #表示自己就是注册中心,职责是维护服务实例,并不需要去检索服务service-url:#设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/  #单机服务地址

3.启动类上添加注释

在启动类上添加 @EnableEurekaServer 注解

4.启动

访问 http://localhost:7001

服务提供者

1.在pom文件中添加Eureka client依赖

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

2.在application.yml中添加配置

server:port: 8001 #端口
eureka:client:register-with-eureka: true #是否向注册中心注册自己fetchRegistry: true #是否从注册中心抓取已有的注册信息 默认true,集群必须设置为trueservice-url:#      设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址defaultZone: http://localhost:7001/eureka #单机版instance:instance-id: cloud-provider-payment8001prefer-ip-address: true  #访问路径可以显示IP地址 鼠标悬停服务,右下角可以看到ip

3.启动类上添加注释

启动类上添加@EnableEurekaClient**注解

服务消费者

1.在pom文件中添加Eureka client依赖

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

2.在application.yml中添加配置

server:port: 80
spring:application:name: cloud-order- service
eureka:client:register-with-eureka: true #是否向注册中心注册自己fetchRegistry: true #是否从注册中心抓取已有的注册信息 默认true,集群必须设置为trueinstance:instance-id: cloud-consumer-order80prefer-ip-address: true  #访问路径可以显示IP地址service-url:#设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址defaultZone: http://localhost:7001/eureka #单机版

3.创建RestTemplate

@Configuration
public class ApplicationContextConfig {@Bean@LoadBalanced //让这个RestTemplate在请求时拥有客户端负载均衡的能力public RestTemplate getRestTemplate() {return new RestTemplate();}
}

4.先将注册中心启动,再启动服务提供者

5.创建测试类,使用RestTemplate进行测试

public class OrderController {//单机情况下,直接ip加地址public static final String PAYMENT_URL = "http://localhost:8001";@Resourceprivate RestTemplate restTemplate;@GetMapping("/payment/get/{id}")public CommonResult<Payment> getPayment(@PathVariable("id") Long id) {return restTemplate.getForObject(PAYMENT_URL + "/payment/get/" + id, CommonResult.class);}
}

6.浏览器访问

集群搭建

注册中心

两个注册中心的配置都差不多,区别就是端口、hostname、defaultZone属性值不一样。
现在是模拟的是2台机器做在集群,需要在defaultZone修改,让两台机器相互注册。
7001的defaultZone就应该是:defaultZone: http://eureka7002.com:7002/eureka/

7002的defaultZone就应该是:defaultZone: http://eureka7001.com:7001/eureka/

server:port: 7001
#集群版
eureka:instance:hostname: eureka7001.com    #eureka服务端的实例名字client:register-with-eureka: false    #表示不向注册中心注册自己fetch-registry: false   #表示自己就是注册中心,职责是维护服务实例,并不需要去检索服务service-url:#设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址defaultZone: http://eureka7002.com:7002/eureka/  #这个是集群版开启 互相注册

服务提供者

修改配置文件,同时注册进两个注册中心:

server:port: 8001
eureka:client:register-with-eureka: true #是否向注册中心注册自己fetchRegistry: true #是否从注册中心抓取已有的注册信息 默认true,集群必须设置为trueservice-url:#      设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka  #集群版instance:instance-id: cloud-provider-payment8001prefer-ip-address: true  #访问路径可以显示IP地址 鼠标悬停服务,右下角可以看到ip

自我保护机制

        当我们在本地调试基于 Eureka 的程序时,Eureka 服务注册中心很有可能会出现如下图所示的红色警告,这个警告是触发了 Eureka 的自我保护机制而出现的

        默认情况下,如果注册中心在90秒内没有接收到某个服务提供者的心跳,就会将这个服务提供者提供的服务从服务注册表中移除,这样消费者就无法获取到该服务,更无法调用该服务。

        实际情况中,服务提供者可能会出于网络故障而无法与注册中心正常通信。若此时注册中心因为没有接收心跳而误将健康的服务从服务列表中移除,这显然是不合理的。而 Eureka 的自我保护机制就是来解决此问题的。

        Eureka 的自我保护机制:其中心思想就是,如果注册中心在一段时间内没有接收到服务提供者的心跳,那么注册中心就会开启自我保护模式,将所有的服务提供者的注册信息保护起来,而不是直接从服务注册表中移除。一旦网络恢复,这些服务提供者提供的服务还可以继续被服务消费者消费。

默认情况下,Eureka 的自我保护机制是开启的,如果想要关闭,则需要在配置文件中添加以下配置:

eureka:server:enable-self-preservation: false # false 关闭 Eureka 的自我保护机制,默认是开启,一般不建议大家修改

原理分析

1.当启动eurake客户端应用,比如上面说到的会员服务member,会把当前服务比如服务地址和端口以别名的注册到注册中心

2.当服务消费者比如上面说到的order订单服务,在接口调用的时候,使用服务别名也就是service id去注册中心获取实际的rpc远程调用地址

3. 服务消费者在获取到实际的rpc远程调用地址后,在本地使用HttpClient技术调用远程接口

流程图如下:

http://www.yayakq.cn/news/766980/

相关文章:

  • iis搭建网站教程网站建设成都公司
  • 中文网站欣赏镇江百度网站排名
  • 苏州网站推广如何WordPress寻主题
  • 潍坊汇聚网站wordpress 无法访问
  • 苏州网站建设制作开发公司开发区高级中学
  • 花生壳如何建设网站德州企业网站建设
  • 配音阁在线制作网站赣州企业网站建设公司
  • 潮州木雕世家木雕网站建设案例分享分类信息网站 建议 建设
  • 企业网站建设流程步骤国内新闻最新消息摘抄
  • 上海建设银行网站网页做网站注册商标
  • 个人网站备案说明如何把网站上传到空间
  • 佛山做企业网站的公司制作个人网站的要求
  • 大型网站制作需要多少钱泉州有那些网站建设公司
  • 网站建设中界面模板下载建一个平台网站一般需要多少钱
  • 做u盘的老外网站广州达美网站建设
  • 南阳网站排名优化费用百度网站排名查询工具
  • 上海市工程咨询协会seo应用领域
  • 南通网站定制费用株洲24小时新闻
  • 青岛网站建设seo优化南通做网站的花云
  • 网站企业有哪些wordpress文章怎么生成海报
  • 长沙网站制造wordpress 公众号
  • 通江县建设局网站外贸网站怎么做才好
  • 电子商务网站建设题库wordpress安装demo
  • 网站被k了怎么办网站右边上下浮动代码
  • 网站如何建设与安全网站建设公司名片
  • 门户网站的建设方式有哪些网站制作公司去哪找客户
  • 四川建设数字证书网站百度搜索优化平台
  • 做网页和网站有什么区别吗网站建设策划案模板
  • 东莞网站排名提升平面设计做兼职网站
  • 网站开发原创动漫淘宝加盟网站建设