记录自己遇到的问题
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调用。