Spring Cloud-Eureka服务注册发现

Eureka组件可以分为Eureka Server和Eureka Client。

Eureka Server提供了以下几个功能:服务注册(存储该服务的相关信息,Eureka Server内部采用二级缓存的方式来存储注册表信息),提供注册表信息,服务剔除(eureka.instance.lease-expiration-duration-in-seconds=90 默认90s没有接收到服务的心跳调用时,移除服务),同步服务状态

Eureka Client提供以下功能:注册服务,服务续约(eureka.instance.lease-renewal-interval-in-seconds=30 默认30s),服务下线,获取服务列表(eureka.client.fetch-registry=true,eureka.client.registry-fetch-interval-seconds=30 从server获取服务列表)

Eureka自我保护机制:

正常情况下 Eureka Server在90s内没有接收到Eureka Client的心跳请求时会将该服务给失效。Eureka Server开启自我保护机制后,如下进行开启 eureka.server.enable-self-preservation=true,当服务心跳失败比例在15分钟内低于85%时,Eureka Server将进入自我保护机制。此时,Eureka Server不再从服务列表中移除没有接收到心跳的服务;但是可以接收注册服务和查询服务列表;该节点无法向其他节点同步服务信息

Eureka集群

Eureka Server集群相互之间通过replicate来同步数据;Eureka Server之间通过异步方式同步数据,只能确保最终一致性

Eureka 工作流程

1、Eureka Server启动,如果是集群方式,通过Replicate方式从其他的节点同步数据

2、Eureka Client启动,将服务信息注册到配置的Eureka Server地址上,从Eureka Server获取相关的服务列表并缓存到本地

3、Eureka Client每30s向Eureka Server发送心跳调用,告知Server服务正常

4、Eureka Server如果90s内没有接收到服务心跳,则将服务从服务列表中剔除

5、如果Eureka Server在15分钟内,心跳失败的服务占比85%以下时,进入自我保护机制

6、Eureka Client心跳调用恢复正常后,Eureka Server退出自我保护机制

7、Eureka Client请求服务时先从本地获取相关服务信息,如果没有从Eureka Server上获取

8、Eureka Client服务停止时,服务从Eureka Server 服务注册表中下线

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值