【发布时间】:2019-12-10 16:19:26
【问题描述】:
Spring Boot Cloud Disovery 问题,在 windows 10 上升级 docker 后 Eureka 主机名出现问题。(注意:docker 不托管 spring 服务,只是 mariadb、rabbitmq 和 zipkin)
总结
- 我正在 windows 10 企业版上开发,最新补丁
- Java 8
- sts 4
- docker 托管 mariadb、rabbitmq 和 zipkin(没有服务运行 码头工人)
- 使用基于Eureka的spring boot云发现 服务发现
在 docker 升级之后,直到今天 docker 更新之前一切正常
Eureka 返回“host.docker.internal”作为我的开发箱(托管 Spring Boot 云服务的机器)的主机名
在今天 Windows 10 上的 docker 升级之前,这一直运行良好。
有这方面的指导吗?
------------------ 详细信息---------------- ------------
"
---------------- spring 版本 ----------
buildscript {
ext {
springCloudVersion = "Greenwich.SR1"
springBootVersion = "2.1.5.RELEASE"
springRetryVersion = "1.2.4.RELEASE"
lombokVersion = "3.6.4"
mySqlConnectorVersion = "8.0.15"
springBootAdminVersion = "2.1.5"
}
我正在使用 windows 10 企业版进行 java 开发。
我使用 docker-compose 在我的 Windows 10 机器上的开发环境中托管 mariadb、zipkin 和 rabbitmq
我有一个带有 8 个 Spring Boot 云服务的多项目 gradle 构建
其中一项服务是托管 Eureke 的 Spring Cloud Discovery 服务
其他spring cloud服务都是eureka客户端。
直到今天,一切正常 1)先启动Eureka Spring Boot云服务 2)其他spring boot cloud services为eclipse启动的客户端,注册并查询spring cloud discovery客户端代码获取其他服务的url
今天,windows 10 最新的 docker 发布了,我安装了它(我一直在通过其他几个 docker 更新来开发这个应用程序)。
我更新了 docker,重启了。
重启后,Eureka 服务器返回“host.docker.internal”作为 URL 中的主机名,而不是 http:/mymachinename:8080
升级前没有网络数据,现在有
U:\>ipconfig
Windows IP Configuration
Ethernet adapter vEthernet (DockerNAT):
Connection-specific DNS Suffix . :
IPv4 Address. . . . . . . . . . . : 10.0.75.1
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
Ethernet adapter Ethernet:
Connection-specific DNS Suffix . : net.FOO.BAR.com
IPv4 Address. . . . . . . . . . . : 146.122.145.71
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 146.122.145.1
Ethernet adapter vEthernet (Default Switch):
Connection-specific DNS Suffix . :
IPv4 Address. . . . . . . . . . . : 172.28.74.49
Subnet Mask . . . . . . . . . . . : 255.255.255.240
Default Gateway . . . . . . . . . :
我的客户端 application.properties 文件是:
eureka.client.serviceUrl.defaultZone= http://${ci2.srvhost}:8761/eureka/
eureka.instance.hostname=${ci2.srvhost}
spring.cloud.client.hostname=${ci2.srvhost}
服务器应用程序.property 文件
server.port=8761
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
logging.level.com.netflix.eureka=OFF
logging.level.com.netflix.discovery=OFF
Standard reboot after docker updated
The expected URL from discovery is
http://mymachine:8091
returned value after docker upgrade
http://host.docker.internal:8091
【问题讨论】:
-
嘿,有点跑题了,但我正在使用 eureka 客户端和服务器开发相同类型的架构。我有一个问题:我想在虚拟主机上实时上传应用程序,但不熟悉应该从哪里开始。任何建议都会有所帮助。
标签: spring spring-boot docker netflix-eureka spring-cloud-netflix