Eureka核心特性
目录
- Eureka核心特性
- 服务注册
- 服务续约
- 服务下线
- 获取注册列表信息
- Eureka面试点
- CAP理论
- 多注册中心比较
- Eureka注册慢
- Eureka的自我保护
服务注册
- Eureka Client在第一次心跳时向Eureka Server注册
- 注册时会提供诸多自身元数据:主机名、端口、健康指标URL等
服务续约
- Eureka Client通过发送心跳进行续约
- 默认情况下每30秒发送一次心跳
- 如90秒内Eureka Server未收到续约,则进行服务剔除
服务下线
- Eureka Client优雅退出时会发送cancel命令
- Eureka Server收到cancel命令时会删除该节点
获取注册列表信息
- Eureka Client会缓存由Server获取的注册表信息
- Eureka Client会定期更新注册表信息【默认30秒】
- Eureka Client会处理注册表的合并等内容
Eureka面试点
CAP理论
- 一致性:Consistency
- 强一致性:多个节点的信息高度保持一致
- 弱一致性:多个节点的信息尽量保持一致
- 可用性:Availability
- 系统可用性
- 分区容错性:Partition tolerance
- 不同网络分区下,操作对其它系统可见
CAP理论:在任何一个时刻内,不可能有任何一个系统能同时满足一致性、可用性,分区容错性,可以任意两两组合,但不可能CAP完全满足。
CP:类似Mysql
CA:典型的数据库场景和分布式数据库场景
AP:典型的Redis
多注册中心比较
- 分布式基础:CAP理论
- 常见的注册中心:Zookeeper、Eureka等
- Eureka主要保证AP特性
- Zookeeper是典型的CP特性
- Zookeeper:当获取到一个数据时,会对所有节点做广播,广播结束之前,不管是操作的哪一个节点,都不会看到所操作的数据
- Eureka:在多注册中心的场景中,优先保证可用性。Eureka在服务剔除时,服务不是立刻下线,中间会有很多过程,如客户端去服务端拉取数据时有30秒延迟,服务会保持一段时间,所以即使获取到的是不可用节点,也能获取
- AP和CP是Eureka和Zookeeper最主要的区别
Eureka注册慢
- 注册慢的根本原因在于Eureka的AP特性
- Eureka Client延迟注册,默认30秒
- Eureka Server的响应缓存,默认30秒
- Eureka Server的缓存刷新,默认30秒
Eureka的自我保护
- Eureka Server会自动更新续约更新阀值
- Eureka Server续约更新频率低于阈值则进入保护模式
- 自我保护模式下Eureka Server不会剔除任何注册信息