🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
步骤如下: **1. 搭建 RabbitMQ 环境** 关于 RabbitMQ 环境的搭建参考 https://www.kancloud.cn/king_om/x_1_mq/2483251 。 **2. 演示广播通知至少需要两个 Config 客户端** 源码中已经提供了 cloud-config-client-3355 和 cloud-config-client-3366 两个 Config 客户端。 ![](https://img.kancloud.cn/aa/7e/aa7e52786fd24511e8b65f0773650f41_993x336.jpg) <br/> 3355 模块 与 3366 模块可以共享配置文件,也可以单独有自己的配置文件,并不影响广播通知演示。在这里我选择每个模块有自己单独的配置文件。我在 Gitee 上创建如下两个配置文件。 * 3355 模块:*`cloud-config-client-3355-dev.yml`* ```yml app: name: cloud-config-client-3355 version: dev-1.0 ``` * 3366 模块:*`cloud-config-client-3366-dev.yml`* ```yml app: name: cloud-config-client-3366 version: dev-1.0 ``` **3. 添加消息总线 bus-amqp 依赖** 分别在 cloud-config-center-3344、cloud-config-client-3355、cloud-config-client-3366 各自的`pom.xml`中添加 bus-amqp 依赖。 ```xml <!-- bus-amqp --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency> ``` **4. 添加 RabbitMQ 配置和暴露监控端口** 分别在 cloud-config-center-3344、cloud-config-client-3355、cloud-config-client-3366 各自的 `.yml` 文件中添加 RabbitMQ 相关配置和暴露监控端口。 * 3344 模块的:*`application.yml`* ```yml spring: rabbitmq: host: localhost port: 5672 username: guest password: guest #暴露bus刷新配置的端点 management: endpoints: web: exposure: include: 'bus-refresh' #刷新地址:http://localhost:3344/actuator/bus-refresh ``` * 3355 模块、3366 模块的:*`boostrap.yml`* ``` spring: rabbitmq: host: localhost port: 5672 username: guest password: guest #暴露监控端点 management: endpoints: web: exposure: include: "*" ``` **5. 测试** (1)先启动 cloud-config-center-3344 ,再分别启动 config 客户端 cloud-config-client-3355、cloud-config-client-3366。 (2)未修改配置文件之前,获取的配置如下。 3355 模块:http://localhost:3355/config ``` app.name:cloud-config-client-3355,version:dev-1.0 ``` 3366 模块:http://localhost:3366/config ``` app.name:cloud-config-client-3366,version:dev-1.0 ``` (3)到 Gitee 上修改配置文件。 * 3355 模块:*`cloud-config-client-3355-dev.yml`* ```yml app: name: cloud-config-client-3355 version: dev-2.0 #由 dev-1.0 改为 dev-2.0 ``` * 3366 模块:*`cloud-config-client-3366-dev.yml`* ```yml app: name: cloud-config-client-3366 version: dev-2.0 #由 dev-1.0 改为 dev-2.0 ``` (4)对 cloud-config-center-3344 发送 POST 请求,刷新配置。 ```shell curl -X POST "http://localhost:3344/actuator/bus-refresh" ``` ![](https://img.kancloud.cn/98/4c/984c172755a2b43b7e826dcac1a98842_1129x137.jpg) (5)在<mark>不重启</mark> cloud-config-client-3355、cloud-config-client-3366 的情况下刷新它们的访问地址,获取到的配置如下。 3355模块:http://localhost:3355/config ``` app.name:cloud-config-client-3355,version:dev-2.0 ``` 3366 模块:http://localhost:3366/config ``` app.name:cloud-config-client-3366,version:dev-2.0 ``` 可以看到其配置已经与 Gitee 上的配置同步了,做到了广播通知的效果。