我在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的文件,但结果并没有解释。
感谢任何有关工作示例的帮助。
答案 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