fegin和docker 通信问题
我在服务器上部署了一个consul docker容器,端口为8500,通过ip+8500可以访问,
然后我写了个springboot的demo,作为服务提供者,打包成docker镜像部署到服务器后,可以看到已经注册到consul中
然后我在本地启动一个服务消费者的springboot demo,用fegin调用,提示java.net.SocketTimeoutException: connect timed out,是什么原因
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
1. 尝试consul docker启动 + springboot本地启动 ,如果可以成功通信,再继续.
2. 尝试consul docker启动 + springboot docker启动, 在springboot容器里尝试去ping consul的ip,看可不可达,如果不可达, 看下dockers间的网络通信配置
那岂不是集群的时候,部署10个服务器就需要10个不同的docker镜像吗,因为ip-address都不一样??
回复
这个问题可用环境变量解决。
原因是网不通,docker注册上去的是docker网段172.xxxxxx ,你本地的网肯定访问不到172.xxx的吧;如果要访问,需要把生产者的ip-address改成docker宿主机的ip