客户端|Spring Cloud系列教程第九篇-Eureka自我保护机制

文章图片

文章图片

文章图片

文章图片

Spring Cloud系列教程第九篇-Eureka自我保护机制
本文主要内容:
1:自我保护介绍
2:导致原因分析
3:怎么禁止自我保护
本文是由凯哥(凯哥Java:kagejava)发布的《spring cloud系列》教程的总第九篇:
本文是几个维度中的第一个维度:注册与发现维度配置中心管理之Eureka相关教程第六篇 。
一:Eureka的自我保护机制是什么?保护模式主要用于一组客户端和Eureka Server之间存在网络分区场景下的保护 。 一旦进入保护模式 , Eureka Server将会尝试保护其服务注册表中的信息 , 不再删除服务注册表中的数据 , 也就是不会注销任何微服务 。
简单一句话:
用电视剧新三国中 , 刘备说的:“宁可天下人负我 , 我不负天下人” 。 即:Eureka服务端 , 进入自我保护模式 , 就算所有的微服务真的都出问题了 , 也不会里面删除它们的 。
二:为什么会出现自我保护机制?一句话:某时刻某一个微服务不可用了 , Eureka不会立刻清理 , 依旧会对该服务的信息进行保存 。 属于CAP里面的AP分支 , 也即是:保证可用性、分区容错性 。
【客户端|Spring Cloud系列教程第九篇-Eureka自我保护机制】PS:CAP原则:分布式系统中 , C:一致性;A:可用性;P:分区容错性 。
我们来看看百度百科对CAP原则的详细介绍 , 如下图:
为什么会产生Eureka自我保护机制?
为例防止EurekaClient可以正常运行 , 但是与Eureka Server网络不通情况下 , EurekaServer 不会立刻将EurekaClient服务剔除
默认情况下 , 如果EurekaServer在一定时间内没有收到某个微服务实例的心跳 , EurekaServer将会注销该实例(默认90s).但是当网络分区故障发生(延时、卡顿、拥挤)时候 , 微服务与EurekaServer之间无法正常通信 , 以上行为可能变得非常危险了--因为微服务本身其实是健康的 。 此时本不应该注销这个微服务的 。 Eureka通过\"自我保护模式\"来解决这个问题--当EurekaServer节点在短时间内丢失过多客户端时候(可能发生了网络分区故障) , 那么这个节点就会进入自我保护模式了 。
综上 , 自我保护是一种应对网络异常的安全保护措施 。 它的架构哲学是宁可同时保留所有微服务(健康的、不健康的微服务都会保留) , 也不盲目注销任何健康的微服务 。
职用自我保护模式 , 可以让Eureka集群更加的健壮和稳定
三:怎么禁止Eureka的自我保护?出厂默认 , 自我保护机制是开启的:eureka.server.enable-self-preservation=true
3.1:来看看开启自我保护模式的时候 , Eureka服务端提示:
3.2:修改服务导关闭自我保护
修改Eureka Server项目:7001项目的yml配置:
关闭自我保护机制 , 同时修改心跳时间为2s.如下图:
重启Eureka服务项目 , 来看看关闭自我保护模式后提示:
我们来修改客户端(payment8001项目)的yml配置文件:
Eureka客户端向服务端发送心跳的时间间隔 。 单位秒 。 默认30s 。 修改为1s.
Eureka服务导在收到最后一次心跳后等待时间上限 , 超时将剔除服务 。 单位秒 , 默认90s , 修改值为2s.如下图:
测试关闭自我保护机制:
启动服务端7001项目 , 再启动客户端8001项目 , 我们可以在页面查看客户端成功注册到服务端了 。 如下图:
我们关闭客户端8001项目后 , 间隔2秒+以后 , 在刷新页面.可以看到客户端被移除了 。 如下图:
当出现这个效果 , 说明 , 我们测试成功了 。
当eureka关闭自我保护模式后 , 只要检查到客户端没有发送心跳检测 , 就将客户端从注册列表中移除了 。 这是很危险的 。
用一句话来形容 , 关闭自我保护模式的Eureka服务:曹孟德曰:宁可我负天下人 , 不可天下人负我 。
为什么说 , 没有了自我保护机制很危险?
有可能因为网络原因 , 没有发送心跳成功 , 但是实际上客户端是正常运行的 。 如果这个时候 , 直接移除掉客户端 , 可能造成服务大面积不能使用 。 是很危险的一个操作 。 所以 , 最好别关闭自我保护机制
推荐阅读
- 央视新闻客户端|甘肃陇南文县泥石流灾害 堰塞湖已打开泄水口
- 央视新闻客户端|一架土耳其直升机在伊拉克境内坠毁 机组人员全部遇难
- 央视新闻客户端|世卫组织:全球新增250285例新冠肺炎确诊病例
- 央视新闻客户端|美国疾控中心前主任:新冠肺炎成为美国第三大致死原因
- spring框架之注解的使用
- 央视新闻客户端|四川德阳绵竹民警连夜在外抗洪 返回时派出所被洪水淹没
- 央视新闻客户端|国务院常务会议:教育类硕士及以上学历毕业生、公费师范生免试认定教师资格
- 央视新闻客户端|美国纽约过去36小时约40人卷入枪击事件 造成2人死亡
- 央视新闻客户端|调查:小电梯,大民生 老旧小区加装电梯难在哪?
- 央视新闻客户端|印度北方邦一女性庇护所90人感染新冠病毒
