记录自己遇到的问题
SpringCloud Eureka默认服务的注册方式是通过hostname注册,服务之间通过serviceId相互调用时通过hostname调用,分布式部署的时候需要对每台机器的hosts文件进行配置,不然服务间调用会出现unknowHostException。
遇到这种问题可采用IP注册的方式:
eureka: instance: prefer-ip-address: true instance-id: ${spring.cloud.client.ipAddress}:${server.port}
instance-id是ip:port。注意:${spring.cloud.client.ipAddress} 本机IP的属性在springBoot 2.0中改为${spring.cloud.client.ip-address} 如果出现找不到此属性的情况添加以下依赖:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-commons</artifactId> </dependency>
重新启动服务:查看注册的instance-id已经改为ip:port,服务间调用也已经改为通过IP调用。

本文介绍如何解决SpringCloud Eureka默认通过hostname注册服务导致的分布式部署问题,通过配置IP注册方式避免unknownHostException,确保服务间正确调用。
707

被折叠的 条评论
为什么被折叠?



