目录
1、原理
1)使用:Eureka 保护模式,用于一组客户端和Eureka server之间存在网络分区场景下的保护
2)概念:一旦进入保护模式,Eureka将不再删除服务注册表中的数据,即不会注销任何微服务
3)作用:
- 默认情况下,Eureka Client 定时向 Eureka Server 端发送心跳包
- Eureka Server 端在一定时间内,没有收到Eureka Server 发送的心跳包,便会剔除该服务
- 当短时间内 Eureka Server 端丢失了大量的服务实例心跳,会开启自我保护机制(此时的情况,可能是网络不通畅或者,而 Client 端并未宕机)
2、关闭
2.1、修改配置
server:
# 关闭自我保护机制,保证不可用服务被及时踢出
enable-self-preservation: false
2.2、查看 Eureka 界面
3、Eureka、Consul、Zookeeper的比较
组件名 | 语言 | CAP | 服务健康检查 | 对外暴露接口 | Spring Cloud 集成 |
Eureka | Java | AP | 可配支持 | HTTP | 已集成 |
Consul | Go | CP | 支持 | HTTP/DHS | 已集成 |
Zookeeper | Java | CP | 支持 | 客户端 | 已集成 |
CAP理论:一个系统最多只能满足其中两个
- C:Consistency(强一致)
- A:Availability(可用性)
- P:Partition tolerance(分区容错性)