编程的魅力
首页
分类
标签
归档
动态
关于我
hyuga
2020-11-22
35
2020-11-22 15:26:42
原创
Spring Cloud eureka服务中心心跳检测相关问题
# 起因 生产环境`-Deureka.instance.lease-expiration-duration-in-seconds=15`心跳时间设置为15s,3节点集群。 切服务的时候部分用户反馈接口短暂报错。 经排查,发现运维切服务的脚本使用的是`kill -9`直接干掉了进程,部分请求未处理完响应直接就挂了。 而且服务挂掉后,又未能及时的从eureka注册中心下线,导致后续服务又继续分发到该节点。 # 解决思路 - 将`kill -9`改成`kill`或`kill -15`,平滑关闭进程,等请求响应完后再停止 - 停服务的时候,服务及时从eureka上注销 第一点好处理,就改下运维脚本 第二点可以使用java回调钩子,代码如下 ``` @Component public class CancellationEureka implements DisposableBean { @Resource private EurekaAutoServiceRegistration eurekaAutoServiceRegistration; @Override public void destroy() throws Exception { eurekaAutoServiceRegistration.stop(); } } ```
SpringBoot
评论
发布
留言
评论