Spring Config Server似乎没有通知总线

时间:2018-04-30 22:04:36

标签: spring-cloud-config spring-cloud-bus

我正在使用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),但它似乎并不适合我。

启用配置服务器通知总线的任何属性? 有关如何调试此问题的任何提示?

2 个答案:

答案 0 :(得分:1)

轻松修复(经过大量研究!) 将org.springframework.cloud的所有依赖项从FINCHLEY.M9更改为2.0.0.RC1,突然间,一切都开始工作了!

答案 1 :(得分:0)

也许你的 bootstrap.properties 文件没有在项目启动时加载

所以有几件事是第一手的: 如果您正在使用,(在您的 Cloud Config 项目中),

v2.0.1 2020.0.0可在 <spring-cloud.version> 下找到或在 <DependencyManagement> 中指定)

然后Spring Boot版本低于2.4.1在同一个项目中)将不会在默认情况下启动云配置服务器依赖。

因此,如果您使用上述版本,甚至可能是上述版本,

然后对于需要通过云总线更新的项目(例如使用 bootstrap.properties)应该包含 <properties> 依赖项(当然还有 Starter Bootstrapcloud-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

enter image description here