Eureka 把服务踢下线后多久关闭服务最安全?

2020-07-17 18:19:03 +08:00
 cheng6563
我记得有个文章专门说明了这个问题,一下找不到了,有没有老哥有印象收藏了。
2815 次点击
所在节点    Java
5 条回复
hcx0
2020-07-17 20:26:08 +08:00
默认最极端情况
定时清理任务 60s
3 个心跳周期 90s
消费端缓存 90s

这玩意儿应该在消费端做容错处理,不应该完全依赖注册中心来发现
Kyle18Tang
2020-07-17 20:57:44 +08:00
这个要看设置的, 默认的时间有点长...
jjed0119cs04
2020-07-21 15:35:51 +08:00
正确得做法应该是,服务下线的时候不要 kill -9,让服务关闭之前调用 eureka 的 shutdownHook 。然后 eurekaClient 还有一个本地缓存,还有可能被访问到这个服务,简单的做法是 shutdownhook 调用了之后先不关 docker,延迟 30s 左右再关。
jjed0119cs04
2020-07-21 16:55:16 +08:00
@jjed0119cs04 很久了,才想起记错了难受,,eureka client 的缓存会被 eureka server 的广播清理的, 会保留的是 eureka 的 ReadOnlyCache,这个是不会主动清理的,方法还是一样,延迟 30s 后再关闭。让这 readyOnly 没被清理的 30s 正好被访问到不会出现服务访问不到的情况。
cheng6563
2020-07-21 18:46:28 +08:00
@jjed0119cs04 以 eureka 是会主动通知 client 的吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/690960

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX