工程师A接手了3台新服务器,用于部署业务微服务,但是在启动微服务时,报找不到配置信息,配置信息是配置在 spring cloud config中;
经过几轮异常点排查,未找出原因,检查项如下:
1. 新服务器ping注册中心ip/配置中心ip,都能测试通过;
2. 新服务器netstat端口检测也正常;
3. 微服务启动脚本 java -jar 命令与其他正常启动的微服务脚本也相同,没有异常配置;
4. 一度怀疑是微服务代码的问题,因此做排除测试,把微服务脚本在原有部署业务微服的老机器上执行,服务正常启动;
初步结论: 新服务器与配置中心/注册中心存在网络访问问题;
进一步测试:
发现老服务器的host文件中,加入了所有其他微服务机器及注册中心、配置中心机器的本地域名与ip的配置;
注册中心eureka的服务列表中也显示的是 host域名服务,如下图:
由此猜测:新机器中没有配置【所有其他微服务机器及注册中心、配置中心机器的本地域名与ip的配置】,检查host配置文件,果然无任何配置,加入host域名映射文件,再次启动微服务,微服务启动成功;
最终结论:
1. 如果微服务在启动过程中,不是使用ip:port模式注册服务,则使用本机host中的域名往注册中心进行注册微服务;
2. 本地微服务调用其他微服务时,则需要通过host文件中的域名配置找到真正的服务ip和端口,进行服务调用,如果没有配置,则服务调用会失败;
如下图:使用域名注册服务,则RibbonServer客户端的服务列表为:http://域名:端口
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。