场景
由于众所周知的原因,要求Spring服务存活在k8s里面,要求配置中心使用nacos。在这样一个环境下,不知道什么原因导致k8s里面的Spring服务不断重启。
异常现象
主要的日志现象就是如下图:
不断出现received push data...
现象。在这样不断接收数据一段时间,就会导致Spring应用重启。
还有一个现象就是spring在不断给nacos上报心跳的请求,然后,直接登录k8s的pod本地调用curl http://127.0.0.1:8081/actuator/health
,发现本地访问该健康检查请求,都变得卡顿了。
可能原因
Spring不断上报nacos心跳,导致Spring应用卡顿,进一步导致影响到k8s的健康检查,从而,导致k8s判断Spring应用挂了,从而,重启Spring应用。
解决
最后,通过设置禁用nacos的服务发现配置,但是,仍旧保留nacos的配置中心作用。
yaml
spring:
#nacos组件
cloud:
nacos:
discovery:
# 禁用nacos服务发现
enabled: false
总结
用了k8s的服务发现,我不就应该再用了nacos的服务发现。