Tag: spring云netflix

为什么部署在Docker容器上的Spring云Netflix应用程序需要明确设置eureka.instance.hostname?

一个简单的场景: 2个尤里卡服务器( http:// archimedes1 http:// archimedes2 ) 1configuration服务器 1 Zull网关 1商业微服务 部署在本地一切都按预期工作。 我dockerized他们运行在每个应用程序的个别容器,并在Windows上的Dockertesting。 我在部署(config server,zull和b-ms)后看到的是,如果我没有为每个人指定eureka.instance.hostname ,他们会在Eureka服务器中注册一个无效的URL 。 这使得他们无法互相呼叫,因为他们得到无效的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 ,现在可以正确parsingconfiguration服务器。 为什么有必要为每个服务使用eureka.instance.hostname ? 为什么不注册与他们的IP:端口运行时没有Docker( c99cdfe9bd01:configserver:8888 -> 192.168.99.100:8888 )?

在Docker容器发布端口时,应用程序在Eureka中使用IP而不是主机名注册

我dockerize我的Spring Boot应用程序并部署到Docker群集。 如果我不发布我的应用程序公开的端口,那么尤里卡客户端将主机名称作为实例的地址发送,如http://ecf28bdd26c5:8080 – 好 如果我发布的端口(使用Docker的–publish参数),那么它注册与IP,如http://10.255.0.25:8080 – 坏 即使我明确地设置了eureka.instance.prefer-ip-address=false 。 如何强制Eureka客户端真正使用主机名?