eureka工作原理简介
所属分类 springcloud
浏览量 897
Eureka Server 注册中心服务端
服务注册 提供注册表 状态同步
Eureka Client 注册中心客户端
拉取 更新 缓存 注册表信息
Register 服务注册
注册时提供自身的元数据,比如 IP地址 端口 运行状态URL 主页 等
Renew 服务续约
每隔30秒发送心跳来续约
Eureka Server 在 90 秒内没有收到 续约,将实例从其注册表中剔除
Eviction 服务剔除
# 服务续约间隔时间 默认30秒
eureka.instance.lease-renewal-interval-in-seconds=30
# 服务失效时间 默认90秒
eureka.instance.lease-expiration-duration-in-seconds=90
Cancel 服务下线
Eureka Client 在关闭时向 Eureka Server 发送取消请求
GetRegisty 获取注册列表信息
Eureka Client 从服务器获取注册表信息,并缓存
每30秒更新一次
# 从注册中心拉取服务列表
eureka.client.fetch-registry=true
# 从注册中心拉取服务列表间隔
eureka.client.registry-fetch-interval-seconds=30
服务提供者有多个时,通过 Ribbon 自动进行负载均衡
自我保护机制
网络分区故障,导致实例被注销
大量实例被注销,影响可用性
运行时统计心跳失败比例 ,在15分钟内低于 85%,启动自我保护
不再剔除实例
继续处理册和查询请求,但不同步到其它节点上
网络稳定后再同步
个别客户端出现心跳失联时,认为是客户端的问题,剔除
当捕获到大量的心跳失败时,则认为是网络问题,启动自我保护
客户端心跳恢复后,退出自我保护
eureka.server.enable-self-preservation=true
Eureka 集群原理
Region Zone
Region 可理解为不同区域 ,譬如 亚洲地区,中国区
Zone 可理解为 region 内的具体机房
互相注册
每个节点配置一个或多个有效的 serviceUrl 指向其他节点
异步复制 同步
CAP 中的 AP 模式 , 放弃一致性 ,保证可用性
各节点对等
上一篇
下一篇
redis-cli 使用
SpringCloud全家桶简介
Feign Ribbon Hystrix
Eureka源码要点
Hystrix实例
SpringMVC @ControllerAdvice 注解