我遇到了@RefreshScope及其行为的问题。两个主要问题:
调用刷新端点时,服务会有效地重新启动和取消注册,然后重新注册Eureka。我认为刷新范围主要是非服务影响吗?
我的服务从一个随机端口开始,即我在我的属性中将server.port设置为0。上面提到的重新启动会更改分配给服务器端口的初始值,并将其更改为0以便向Eureka注册。这意味着该服务对任何Ribbon / eureka感知负载均衡器都是无法实现的。
请在此处查看我的示例项目:
答案 0 :(得分:0)
感谢@DaveSyer,我能够深入了解这个问题。在我的示例服务bootstrap.yml中(参见https://github.com/KramKroc/refreshscope),我有以下几行:
eureka:
instance:
nonSecurePort: ${server.port:8082}
这是错误的,因为它导致服务在server.port(设置为零)上重新注册eureka,如果没有定义则重新注册8082。删除nonSecurePort条目允许刷新服务,并仍然使用Eureka中的正确(随机)端口进行注册。