Spring Cloud Bus无法工作/总线/刷新调用进入控制器并在控制器中搜索映射并失败

时间:2017-05-27 17:29:29

标签: spring rabbitmq spring-cloud-bus configserver

我已经使用配置服务器和github支持的外部配置文件配置了我的应用程序。当我在云代工厂中使用我的应用程序的单个实例时,它工作正常。

但是对于多个实例,它被称为实现Spring云总线以将外部配置更改应用于所有实例。为此,我将配置服务器与Pivotal Cloud代工厂提供的Rabbit MQ实例绑定。在我的build.gradle文件中添加了spring.cloud.starter.bus.amqp jar。

问题:但是当我向客户端应用程序发出POST请求时: http://server:port/bus/refresh调用转到控制器而不是刷新所有实例,并且因为没有映射而失败。

如果我错过任何配置以使Spring-cloud-bus工作,请告诉我。 提前谢谢!

application.properties(客户端应用程序):

spring.profiles=cloud  
spring.rabbitmq.host= 10.17.128.102
spring.rabbitmq.port= 5672
spring.rabbitmq.virtual-host= *****
spring.rabbitmq.username= ******
spring.rabbitmq.password= *****
rabbit.exchangeName= demoPartyServiceexc
rabbit.routingKey= demoPartyService
rabbit.queueName= demoPartyServicequeue
logging.level.ROOT= ERROR 

bootstrap.properties(客户端应用程序):

spring.application.name=demo-api
spring.cloud.bus.enabled=true
spring.cloud.config.bus.enabled=true
spring.cloud.bus.amqp.enabled=true
spring.cloud.bus.refresh.enabled=true
spring.cloud.bus.env.enabled=true
spring.cloud.config.uri=https://config-a5e99419-8179-47f7-8c23-62ed5b38db0b.cf.com
spring.cloud.config.server.bootstrap=true
spring.cloud.config.server.git.uri= My Github repository URI
spring.cloud.config.server.git.username= ********
spring.cloud.config.server.git.password= ********
GIT repo中的

application.properties文件:

logging.level.ROOT=WARN

1 个答案:

答案 0 :(得分:0)

客户端应用中的server.servlet-pathmanagement.context-path设置为什么?

我认为您可能需要将请求发送到http://host/<management.context-path>/bus/refresh

或者更好的是,到http://config-server-host/monitor,以便它向RabbitMQ中的主题发布消息,并通知所有客户端应用。

配置片段,源代码和更多详细信息可以在我的博文中找到:Refreshable Configuration using Spring Cloud Config Server, Spring Cloud Bus, RabbitMQ and Git