1

我正在使用 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 存储库中编辑了一个文件(使用带有 Spring Cloud Config 的本机配置文件的本地文件)。检测到更改,我在 Cloud Config Server 中看到以下行:

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)但它似乎没有在我这边工作。

配置服务器启用任何属性以通知总线?关于如何调试的任何提示?

4

2 回答 2

1

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

于 2018-05-01T21:52:05.053 回答
0

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

所以一些第一手的东西:如果你正在使用,(在你的云配置项目中),

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

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

因此,如果您使用的是上述版本,也许还有上述版本,

然后对于需要通过云总线更新的项目(例如使用 bootstrap.properties)应该包含Starter Bootstrap依赖项(当然还有cloud-starter-config依赖bus-amqp项)

<!--    Spring Cloud Config + Cloud Bus + Bootstrap-->

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

另外检查 Spring cloud 版本是2020.0.0-M6还是Hoxton.BUILD-SNAPSHOT,具体取决于您使用的 Spring Boot 版本。这是 Spring Cloud 版本与哪些 Spring Boot 版本兼容的截图

vvvvvv

在此处输入图像描述

于 2021-01-23T02:26:26.117 回答