JHipster微服务本地运行时注册中心地址配置不生效问题咨询
问题原因
你的本地配置被更高优先级的远程配置中心配置覆盖了,具体逻辑如下:
- 你通过docker-compose部署的JHipster Registry同时承担服务注册中心和Spring Cloud配置中心的功能,配置中心默认读取你本地
./central-server-config目录下的配置文件。 - Spring Cloud 配置加载优先级:远程配置中心的配置 > 本地项目的配置文件。你
central-server-config目录下的application-dev.yml(或对应微服务的dev环境配置)中,默认配置的eureka注册中心地址是http://admin:${jhipster.registry.password}@jhipster-registry:8761/eureka/,该配置是为运行在docker网络内的服务设计的,优先级高于你本地项目中配置的localhost地址,因此会覆盖本地设置。 - 你在宿主机器直接启动微服务时,系统无法解析docker内部域名
jhipster-registry,因此抛出UnknownHostException异常。
解决方案
你可以按需选择以下任意一种方案解决:
- 方案1:修改
./central-server-config目录下dev环境对应的配置文件,将eureka注册中心地址改为http://admin:${jhipster.registry.password}@localhost:8761/eureka/,重启JHipster Registry后再启动微服务即可。 - 方案2:启动微服务时添加启动参数强制覆盖配置,命令如下:
./mvnw -Pdev -DskipTests -Deureka.client.service-url.defaultZone=http://admin:admin@localhost:8761/eureka/ - 方案3:在本地hosts文件添加
127.0.0.1 jhipster-registry解析,同时适配本地和docker内服务的访问需求。
内容的提问来源于stack exchange,提问作者Juano7894
相关产品推荐
相关产品推荐

