浅谈eureka的保护机制

打印 上一主题 下一主题

主题 546|帖子 546|积分 1638

  今天学习了spring cloud 中的注册中心——eureka,作为微服务的注册中心,eureka需要对服务的可用状态进行一个体现。直观的体现方式就是在eureka启动后的ui界面上可以看到服务的是否可用。
  在某一个时刻下,如果后端某一个服务不可用了,eureka不会立即将其从ui界面上删除。而是等待一段时间后再删除,在默认情况下,这个时间是90s。在90s内,eureka会有一个心跳机制来判断服务是否健康。每相隔30s会发送一个心跳信号。如果超过3次,也就是90s未收到信号,则判定发送心跳信号的服务不可用了,这时候才会将服务删除。
  但是,这里有一个问题。eureka接收心跳信号,信号也是通过网络传输的。假如,不是服务失效,而是网络状态不好。导致eureka服务器接收不到信号,那是否会因为网络的问题造成eureka误判了服务的可用情况,导致服务被误删了呢?
  考虑到这种情况,eureka设置了阈值。当15分钟之内,若挂掉的服务超过了15%。(也就是eureka突然对项目服务中的15%失去了心跳信号)那eureka会判断,这些15%的服务挂掉的原因,不是由于服务真的挂掉了,而是网络不好,心跳信号传达不到。然后eureka不会删除这些服务。
 
例子:三年一班今天老师上课突然发现了15%的学生(服务)都没来上课(失效)。老师进行判断,这15%的学生有可能是堵车(网络拥堵)了,不是故意迟到的。因为平常不会突然大量的学生同时迟到。老师不对他们追究责任(不删除服务)。
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

欢乐狗

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表