实现 Spring Cloud Bus

2025年1月11日 | 阅读 2 分钟

在本节中,当我们在 Git 存储库中进行更改时,我们必须访问 limits-service 的多个实例来刷新配置。

我们将调用一个 URL,它将反映微服务的所有一百个实例。在这里,我们将使用 Spring Cloud Bus。Spring Cloud Bus 中有许多选项可用:Apache Kafka、RabbitMQ 等。在本节中,我们将使用 RabbitMQ

注意:在进入下一步之前,请确保 RabbitMQ 服务器正在后台运行。

让我们在 limits-servicespring-cloud-config-server 中实现 Spring Cloud Bus。

步骤 1: 打开 limits-servicespring-cloud-config-server 项目的 pom.xml 文件。添加 amqp 依赖项并保存文件以反映更改。

步骤 2: 打开 bootstrap.properties 文件,并通过添加以下语句禁用管理安全

依赖项并保存文件以反映更改。

步骤 3: 首先,运行 SpringCloudConfigServerApplication.java 文件,然后运行 limits-service 的两个实例:LimitsServiceApplicationLimitsServiceApplication8081。

步骤 5: 调用 URL https://:8080/limits。它返回以下响应

依赖项并保存文件以反映更改。

现在,调用 URL https://:8081/limits。它也会返回相同的响应。

步骤 6: 打开 limits-service-qa.properties 文件并将最小值从 22 更改为 29

现在我们必须提交更改。

步骤 7: 打开 Postman 并使用 URL https://:8080/bus/refresh 发送 POST 请求。

注意:如果使用 Spring Boot 2.0.0 或以上版本,请使用以下 URL
https://:8080/actuatror/bus-refresh

步骤 8: 打开浏览器并调用 limits-service 的两个实例(https://:8080/limits 和 https://:8081/limits)。这两个 URL 都返回我们在 limits-service-qa.properties 文件中配置的更新值。

我们已经看到最小值更改为 29。在这里,您可以注意到我们没有手动提交 Git 存储库中的更改,但更改反映在 limits-service 的两个实例中。

我们没有提交 Git 存储库,而是调用了一个 URL https://:8080/bus/refresh。所有这一切都归功于 Spring Cloud Bus

在特定实例中,我们通过 RabbitMQ 运行了 Spring Cloud Bus。当我们启动应用程序时,它也随之启动。启动 Spring Cloud Bus 后,所有微服务都会向 Bus 注册。

当我们进行配置更改时,并在任何实例上调用更改时,微服务会通过 Spring Cloud Bus 发送一个事件。Spring Cloud Bus 将该事件传播到所有已注册到它的微服务实例。

在本节中,我们解决了调用微服务的多个实例的问题。

单击此处下载 limits-service