我是靠谱客的博主 细腻枫叶,最近开发中收集的这篇文章主要介绍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

最后

以上就是细腻枫叶为你收集整理的eureka自我保护机制大白话总结的全部内容,希望文章能够帮你解决eureka自我保护机制大白话总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部