文章目录
一、问题二、原因三、解决办法一、问题
eureka、gateway 和 微服务应用 部署好后用网关访问应用时报错
.UnknownHostException: 235e07e2ae51: Name or service not known
二、原因
开发环境下的微服务都是在本地,默认情况下,eureka 使用 hostname 进行服务注册和信息显示,而部署到 docker 之后,每个微服务的环境都是独立的,docker 容器会用自己的容器id去注册 eureka,所以上面那个报错里说找不到 235e07e2ae51 服务,实际上它找的是容器的 id
三、解决办法
在application文件中加入如下配置项
eureka:instance:prefer-ip-address: true
eureka.instance.prefer-ip-address=true 会保证微服务容器注册时 hostname 使用 ip 地址,这样网关就能正常获取 eureka 中注册的微服务转发请求到应用了