这个问题在这里解释,但已经有好几周没有回应这张票,https://github.com/spring-cloud/spring-cloud-bus/issues/112 .

简而言之,我正在使用Spring Cloud Config Server / Client(git支持)以及Spring Cloud Bus来广播更改,如果有任何配置文件 . 我已经注册了一个webhook,它将命中https://ip:8888/monitor,这将创建一个RemoteRefreshApplicationEvent . 需要通过Spring启动的默认队列,SpringCloudBus(主题)和匿名队列来向所有客户端广播此事件以处理消息 . 这会触发客户端中bean的重新加载,标记为@RefreshScope .

现在问题是由于Spring ContextInitializer的问题,事件没有被放入RabbitMQ . 使用SpringBoot 2.0.X版本,ContextId表示为一个类,当应用程序刷新发生时,调用ContextId.createChild()方法创建一个新的contextId,类似context-1,导致不将事件推送到rabbitmq . 到目前为止,这是我的理解,请帮助我,我做错了 . 代码和日志可以在这里找到,

https://github.com/spring-cloud/spring-cloud-bus/issues/112 https://github.com/spring-cloud/spring-cloud-bus/issues/112#issuecomment-381700680