首页  

eureka工作原理简介     所属分类 springcloud 浏览量 875
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 注解