Spring Cloud教程-实现Spring Cloud Bus
实现Spring Cloud Bus
在这一节中,当我们在Git存储库中进行更改时,我们必须调用多个limits-service的实例来刷新配置。
我们将调用一个URL,它将反映所有一百个微服务的实例。在这里,我们将使用Spring Cloud Bus。Spring Cloud Bus有许多可用选项:Apache Kafka,RabbitMQ等。在本节中,我们将使用RabbitMQ。
注意:*在进行下一步之前,请确保*RabbitMQ服务器在后台运行。
让我们在limits-service和spring-cloud-config-server中实现Spring Cloud Bus。
步骤1: 打开limits-service和spring-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的实例:LimitsServiceApplication和LimitsServiceApplication8081。
步骤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/refresh
的POST请求。
注意:如果您使用的是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将该事件传播到所有已注册的微服务实例。
在本节中,我们解决了调用多个微服务实例的问题。