预期的@RefreshScope行为

时间:2016-03-09 16:11:27

标签: spring-boot spring-cloud

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

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

  2. 我的服务从一个随机端口开始,即我在我的属性中将server.port设置为0。上面提到的重新启动会更改分配给服务器端口的初始值,并将其更改为0以便向Eureka注册。这意味着该服务对任何Ribbon / eureka感知负载均衡器都是无法实现的。

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

    https://github.com/KramKroc/refreshscope

1 个答案:

答案 0 :(得分:0)

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

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

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