预期的@RefreshScope 行为

Expected @RefreshScope behaviour

我遇到了@RefreshScope 及其行为的问题。两个主要查询:

  1. 调用刷新端点时,服务会有效地重新启动并取消注册,然后重新注册到 Eureka。我认为刷新范围主要不会影响服务?

  2. 我的服务在一个随机端口上启动,即我在我的属性中将 server.port 设置为 0。上面提到的重启改变了分配给服务器端口的初始值,为了向Eureka注册,将其更改为0。这意味着该服务实际上无法与任何 Ribbon/eureka 感知负载均衡器联系。

在此处查看我的示例项目:

https://github.com/KramKroc/refreshscope

感谢@DaveSyer,我得以深入了解这个问题。在我的示例服务 bootstrap.yml 中(参见 https://github.com/KramKroc/refreshscope),我有以下行:

eureka: instance: nonSecurePort: ${server.port:8082}

这是不正确的,因为它导致服务在 server.port(设置为零)或 8082(如果未定义)上重新注册 eureka。删除 nonSecurePort 条目允许刷新服务并仍然在 Eureka 中使用正确的(随机)端口注册。