maven 为什么我的微服务没有向Eureka 服务器注册两个示例?

w80xi6nr  于 5个月前  发布在  Maven
关注(0)|答案(1)|浏览(73)

我在不同的端口上设置了两个微服务示例,但在Eureka Jmeter 板上只能看到一个示例。我在微服务的application.properties文件中设置了以下属性:

server.port=0
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
spring.application.name=Inventory-Service

字符串
但是,当我检查Eureka Jmeter 板时,我只能看到我的微服务的一个示例。我确信两个示例都在运行。可能是什么问题?
我正在使用Sping Boot 和Spring Cloud。任何帮助都将不胜感激。谢谢!

af7jpaap

af7jpaap1#

这在this GitHub issue中有记录。问题是用于注册Eureka 的默认示例ID如下所示:

${spring.application.name}:${server.port}

字符串
因此,即使您使用server.port=0在随机端口上运行微服务,在这两种情况下,它在Eureka 中使用的ID都是Inventory-Service:0。由于ID必须是唯一的,因此在Eureka 中只注册了一个示例。


的数据
这个问题的解决方案是不使用随机端口,或者确保为每个示例生成唯一的Eureka ID。
举例来说:

eureka.instance.instance-id=${spring.application.name}:${random.int}


相关问题