实现Spring Cloud Bus

在这一节中,当我们在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依赖项并保存文件以反映更改。

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

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

management.security.enabled=false

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

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

{"maximum":222,"minimum":22}

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

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

现在我们必须提交更改。

步骤7: 打开Postman,并发送带有URL http://localhost:8080/bus/refreshPOST请求。

注意:如果您使用的是Spring Boot 2.0.0或更高版本,请使用以下URL:http://localhost:8080/actuator/bus-refresh

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

{"maximum":222,"minimum":29}

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

我们没有提交Git存储库,而是调用了URL http://localhost:8080/bus/refresh。所有这一切都是由于Spring Cloud Bus而发生的。

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

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

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

标签: spring, Spring教程, spring cloud, spring cloud教程, spring cloud框架, spring cloud面试题, springcloud组件, springcloud微服务架构, springcloud入门教程, springcloud主件, spring cloud架构图