我正在使用Spring 2.0.1.RELEASE并使用spring-cloud-bus设置所有项目(2个服务和云配置服务器)
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
配置服务器还有spring-cloud-config-monitor
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-monitor</artifactId>
</dependency>
我在Git reposiroty中编辑文件(使用具有Spring Cloud Config原生配置文件的本地文件)。检测到更改,我在下面看到以下行 云配置服务器:
17:59:25.201 [task-scheduler-3] INFO o.s.cloud.bus.event.RefreshListener - Received remote refresh request. Keys refreshed [version.client.min]
但是,其他任何服务都没有收到有关更新密钥的通知。
另一方面,如果我手动调用任何其他服务的bus-refresh
端点,我会看到所有模块都收到更新的密钥。配置服务器本身也接收通知,但它表示没有更新密钥,这是有道理的,因为它已经检测到更改。
文档没有提到任何与RabbitMQ属性分开的特殊属性(由于bus-refresh
端点按预期工作,因此似乎配置得很好。)
我看到已经有一些关于此的帖子,有人甚至指出一个已被标记为已解决的错误(https://github.com/spring-cloud/spring-cloud-bus/issues/101),但它似乎并不适合我。
启用配置服务器通知总线的任何属性? 有关如何调试此问题的任何提示?
答案 0 :(得分:1)
轻松修复(经过大量研究!) 将org.springframework.cloud的所有依赖项从FINCHLEY.M9更改为2.0.0.RC1,突然间,一切都开始工作了!
答案 1 :(得分:0)
所以有几件事是第一手的: 如果您正在使用,(在您的 Cloud Config 项目中),
v2.0.1
2020.0.0(可在 <spring-cloud.version>
下找到或在 <DependencyManagement>
中指定)
然后Spring Boot版本低于2.4.1(在同一个项目中)将不会在默认情况下启动云配置服务器依赖。
因此,如果您使用上述版本,甚至可能是上述版本,
然后对于需要通过云总线更新的项目(例如使用 bootstrap.properties)应该包含 <properties>
依赖项(当然还有 Starter Bootstrap
和cloud-starter-config
依赖)
bus-amqp
另外检查 Spring Cloud 版本是 2020.0.0-M6 还是 Hoxton.BUILD-SNAPSHOT,具体取决于您使用的 Spring Boot 版本。这是 Spring Cloud 版本与 Spring Boot 版本兼容的截图
v v v v v v v