eureka自我保护机制大白话总结

1.何为自我保护:

保护注册到自己身上的客户端,不被剔除

2.何时触发

默认是开启自我保护的,但是只有网路通信故障等原因时才触发

3.怎么判断网络正常与否

通过心跳机制,判断期望心跳数( 理想心跳数)和实际心跳数
如果上一分钟心跳数 < 期望心跳数的85%,此时我认为网络有波动,是不正常的, 就会触发自我保护机制
如果上一分钟心跳数 >= 期望心跳数的85%,此时我认为网络是正常的,不会触发自我保护;

4.何时退出自我保护

触发自我保护机制之后,所有注册的客户端都不会被剔除,但是注册中心会一直检测网络情况,当发现网络正常时,就会自动退出自我保护,这时不正常的客户端就会被剔除。

个人总结:

配置中开启了自我保护或者在都使用默认值(默认开启了自我保护)的情况下,客户端每30s续约(发送心跳包)一次,服务端(注册中心)每60s扫描一次超过90s还没有续约的客户端,正常情况下(没触发自我保护)就会剔除。
说的再详细一点,他在扫描时,还会判断一个数据,就是上一分钟实际心跳数 和 期望心跳数
1.如果上一分钟心跳数 >= 期望心跳数的85%,此时我认为网络是正常的,不会触发自我保护;
2.如果上一分钟心跳数 < 期望心跳数的85%,此时我认为网络有波动,是不正常的, 就会触发自我保护机制
触发自我保护机制后,服务端不会剔除任何客户端,它还会每60s执行一次检查,直到发现网络正常,就会自动退出自我保护,此时超过90s还没有续约的客户端才会被剔除掉。

配置中关闭了自我保护之后,客户端每30s续约一次,服务端每60s扫描一次超过90s还没有续约的客户端,超时就会立即剔除。

自我保护机制的好处


Eureka服务端为了防止Eureka客户端本身是可以正常访问的,但是由于网路通信故障等原因,造成Eureka服务端失去于客户端的连接,从而形成的不可用。

因为网络通信是可能恢复的,但是Eureka客户端只会在启动时才去服务端注册。如果因为网络的原因而剔除了客户端,将造成客户端无法再注册到服务端。

一般情况下,我们会选择在 开发环境下关闭自我保护机制,而在生产环境下启动自我保护机制。

开发环境下,我们我们启动的服务数量较少而且会经常修改重启。如果开启自我保护机制,很容易触发Eureka客户端心跳占比低于85%的情况。使得Eureka不会剔除我们的服务,从而在我们访问的时候,会访问到可能已经失效的服务,导致请求失败,影响我们的开发。

在生产环境下,我们启动的服务多且不会反复启动修改。环境也相对稳定,影响服务正常运行的人为情况较少。适合开启自我保护机制,让Eureka进行管理。

更详细的讲解:

1.Eureka自我保护机制
https://blog.csdn.net/wudiyong22/article/details/80827594?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.vipsorttest&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.vipsorttest

2.深度解析Eureka的自我保护机制
https://blog.csdn.net/yuanshangshenghuo/article/details/110131223

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值