上一题下一题

Eureka 租约续约、自我保护与实例剔除之间如何共同影响服务发现中的故障感知延迟?

进阶版
来源:alibaba高级工程师客户端负载均衡实例刷新下线传播延迟心跳续约机制服务发现实例列表一致性
草稿该题目为草稿状态,前台公开题库中不可见。
答案解析

这三个机制是串联影响故障感知延迟的:续约决定实例什么时候被判定为失联,自我保护决定过期实例是否允许被自动删除,实例剔除之后还要等客户端刷新本地注册表缓存。

租约续约 :Eureka Client 默认大约每 30 秒发送一次心跳续约,Server 默认租约过期时间通常是 90 秒。如果实例宕机或网络中断,Server 会在最后一次成功续约后的租约时间到期后,将实例标记为过期。按默认参数,从故障发生到租约过期大致需要 60~90 秒,取决于故障发生在两次心跳之间的哪个时间点。 实例剔除 :租约过期并不代表立即从注册表删除。Eureka Server 通常按照剔除定时任务执行清理,默认周期约为 60 秒,因此还要再叠加最多一个剔除周期。正常情况下,Server 端完成删除大约需要 60~150 秒。 客户端缓存刷新 :服务实例被 Server 删除后,Eureka Client 还要等下一次注册表拉取和本地缓存刷新,默认通常还有约 30 秒的延迟。因此,调用方真正停止选择故障实例,理论上可能接近 90 秒租约等待时间加 60 秒剔除周期,再加 30 秒客户端

登录后查看完整内容