问题
在spring cloud开发中遇到一个问题,由于服务向spring eureka中注册实例的时候使用的是机器名+服务名+端口的形式,导致多个实例可能出现同名的情况,最终只有一个实例在注册列表中。
测试多种方案后,最终选择的解决方案是:
在每个客户端的properties配置中添加
eureka.instance.preferIpAddress=true
eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${server.port}
其中 spring.cloud.client.ipAddress和 s p r i n g . c l o u d . c l i e n t . i p A d d r e s s 和 {server.port}可以填入实际的ip和端口,也可以在properties中配置好
修改完成后,在eureka的界面上看到实例名称变成了ip+端口的形式
参考
spring eurake中使用IP注册
Spring Cloud Eureka 集群,客户端不同服务器同端口注册只能注册一个,无法负载均衡
在Spring Cloud Eureka中,若服务实例注册时使用机器名+服务名+端口方式,可能会导致实例名重复的问题。本文介绍了一种通过设置eureka.instance.preferIpAddress为true,并配置instance-id为实际IP地址和端口来解决该问题的方法。
648

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



