Spring Cloud Bus - 刷新特定的客户端集群

时间:2017-11-30 20:22:51

标签: spring apache-kafka spring-cloud bus configserver

我在kafka上通过spring cloud总线配置了spring cloud配置服务器。 我在启动1.5.9时使用Edgware.RELEASE。 当我通过POSTMAN向配置服务器发送POST请求到终端/总线/刷新,目的地= clientId:dev:**时,所有客户端都刷新了他们的bean,即使他们的clientId与值不匹配在目的地字段中。

以下是其他配置详细信息:

spring cloud config server

的pom.xml

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-server</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-monitor</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bus-kafka</artifactId>
    </dependency>

application.properties

server.port=8888
management.security.enabled=false
spring.cloud.bus.enabled=true
spring.kafka.bootstrap-servers=localhost:9092

我有两个配置客户端,其中包含id - config-client1和config-client2

在config-client2的存储库中更改应用程序属性后,我在配置服务器上向/ bus / refresh端点提交POST请求,并在请求正文中使用destination = config-client2:dev:**。我希望这只会在config-client2应用程序中刷新/重新初始化bean。但我注意到config-client应用程序中的bean也被刷新/重新初始化。我还注意到config-client应用程序接收刷新事件以及config-client2。

我希望只有config-client2应用程序接收该事件,并且它的bean是唯一因其而刷新的bean。

想知道我是否缺少任何配置设置以在特定客户端级别启用粒度刷新。

我确实浏览了发布在http://cloud.spring.io/spring-cloud-static/Edgware.RELEASE/single/spring-cloud.html的文件,但结果并没有解释。

感谢任何有关工作示例的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用:

  

卷曲-X POST http://localhost:8001/actuator/bus-refresh/config-client2

您还需要在application.properties或.yml中使用它。

  

spring.cloud.config.uri = http://localhost:8001

spring.cloud.config.uri应该指向您的Spring Config Server