服务部署到Docker上面但Nacos无法读取全部配置文件
java版本:17 spring-cloud-alibaba版本:2023.0.1.0 spring boot版本:3.3.0 spring cloud版本: 2023.0.2 nacos客户端版本:2.3.2 nacos版本为2.3.0, standalone模式, 非docker部署形式 serverAddr均为远程Nacos地址
application文件是这样的(有多个application-${profile}.yml文件)
如果本地启动服务用远程Nacos地址就没有问题
但是如果一部署到服务器的docker上面, application-common.yml(这里common-config.yml内容跟application-common.yml完全一样只是名字不同)一直报is empty, nacos里面有这个文件, 只有这个文件一直读取不了
我在Docker容器上面调试看源码直接就报500的TimeoutException了
如果把serverAddr改成localhost的话这个就不会报错, 不知道什么原因
容器内部ping一下serverAddr看看是否可达?可能是docker的网络模式导致
超时问题无非3种:
- 服务端性能不足,响应较慢。
- 客户端性能不足,无法即使处理响应,导致响应在队列中对接,外层Future认为超时。
- 网络问题,request丢包或者response丢包。
无论哪种问题都需要在出问题的环境自行排查。
容器内部ping一下serverAddr看看是否可达?可能是docker的网络模式导致
telnet和ping可达 docker改默认bridge模式就可以调取了
超时问题无非3种:
- 服务端性能不足,响应较慢。
- 客户端性能不足,无法即使处理响应,导致响应在队列中对接,外层Future认为超时。
- 网络问题,request丢包或者response丢包。
无论哪种问题都需要在出问题的环境自行排查。
但是问题是为什么其他两个文件没有问题就能调取呢? 这个common文件只有9kb的大小, 把超时调的再大也是无法用host模式读取
超时问题无非3种:
- 服务端性能不足,响应较慢。
- 客户端性能不足,无法即使处理响应,导致响应在队列中对接,外层Future认为超时。
- 网络问题,request丢包或者response丢包。
无论哪种问题都需要在出问题的环境自行排查。
但是问题是为什么其他两个文件没有问题就能调取呢? 这个common文件只有9kb的大小, 把超时调的再大也是无法用host模式读取
这就要查网络配置了, 只修改了网络模式,就不超时了, 说明问题出在旧的网络模式上,是不是旧的网络模式对大数据包支持有问题,或者对于拆包沾包等的支持有问题。
这个就不属于nacos的问题了。
No more response from author for a long time, and this problem seems env problem.