1:背景和现象
现象:服务打包完成后,本地代码测试没有问题,发布到线上,其他服务调用,报错:没有获得服务 … 的调用地址,请检查服务是否已经推送
被告知没有注册上去后,迅速查看了服务启动日志:
发现:健康检查异常:没有连接线上的 redis 服务,主动连接本地 redis。
2:解决过程
1:第一反应是检查 redis 相关配置,检查后,发现并没有变化,排除;
2:检查线上服务的 相关配置,经过对比,发现也没问题;
3:检查相关代码,是不是有触发 redis 的部分,经检查,没有,排除;
4:检查 maven 依赖,是否是因为版本导致冲突,经检查,没有,排除;
5:到这里,已经有点没有办法了,尝试了删除节点,重新发布,结果还是一样的问题;
最终办法:
还是老田经验丰富,想到了 绕过 redis 的健康检查,因为觉得它的健康检查出错了。在配置文件添加了一行配置:
## 绕过 redis 健康检查
management.health.redis.enabled=false
本地测试后,发现可以;打包发布到线上环境,发现服务注册成功,问题得到解决。