为什么部署在Docker容器上的Spring Cloud Netflix应用程序需要显式设置eureka.instance.hostname?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了为什么部署在Docker容器上的Spring Cloud Netflix应用程序需要显式设置eureka.instance.hostname?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1841字,纯文字阅读大概需要3分钟。
内容图文
![为什么部署在Docker容器上的Spring Cloud Netflix应用程序需要显式设置eureka.instance.hostname?](/upload/InfoBanner/zyjiaocheng/666/146abe7112ea4dcb8c624276a9dae01a.jpg)
一个简单的场景:
> 2台eureka服务器(http://archimedes1 http://archimedes2)
> 1个配置服务器
> 1个Zull网关
> 1个企业微服务
部署在localhost上,一切正常.
我对它们进行了docker化,使其可以在每个应用程序的单独容器上运行,并在Windows上的Docker上进行了测试.
部署(配置服务器,zull和b-ms)后,我看到的是,如果我不为它们中的每一个都指定eureka.instance.hostname,它们将使用无效的URL在Eureka服务器中注册.由于它们获取的URL无效,因此无法彼此调用.
例如:
CONFIGSERVER n/a (1) (1) UP (1) - 287dd3ada410:configserver:8888
287dd3ada410:configserver:8888指向287dd3ada410:8888 / info.而且这不存在.
要解决此问题,我必须添加到configserver的application.yml(以及其他应用程序的等效文件):
eureka:
instance:
hostname: config-server
现在它像这样在尤里卡出现:
CONFIGSERVER n/a (1) (1) UP (1) - c99cdfe9bd01:configserver:8888
并且c99cdfe9bd01:configserver:8888指向http:// config-server:8888 / info,它现在可以正确解析配置服务器.
为什么每个服务都必须使用eureka.instance.hostname?为什么没有在没有Docker(c99cdfe9bd01:configserver:8888-> 192.168.99.100:8888)的情况下运行时,他们为什么不向IP:port注册?
解决方法:
我相信每个Docker容器都需要使用Docker主机IP和映射到该容器端口的Docker主机端口进行注册.
这是我用过的:
尤里卡实例:
docker run -idt -p 8001:8001 --net=host -e spring.profiles.active=peerAware -e appPort=8001 -e hostName=$HOSTNAME -e dataCenter=asimio-cloud-dal -e environment=staging -e peerUrls="http://$HOSTNAME:8002/eureka/" asimio/discovery-server:1.0.73
服务实例:
docker run -idt -p 8601:8601 --net=host -e appPort=8601 -e hostName=$HOSTNAME -e eureka.client.serviceUrl.defaultZone="http://$HOSTNAME:8001/eureka/,http://$HOSTNAME:8002/eureka/" asimio/demo-registration-api-2:1.0.21
内容总结
以上是互联网集市为您收集整理的为什么部署在Docker容器上的Spring Cloud Netflix应用程序需要显式设置eureka.instance.hostname?全部内容,希望文章能够帮你解决为什么部署在Docker容器上的Spring Cloud Netflix应用程序需要显式设置eureka.instance.hostname?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。