了解Spring Cloud Bus的必要性

步骤1: 选择项目spring-cloud-config-server,运行SpringCloudConfigServerApplication.java文件。

步骤2: 选择项目limits-service,运行LimitsServiceApplication.java文件。

步骤3: 打开浏览器,输入https://localhost/8080/limits。它返回以下响应:

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

我们从limits-service-qa.properties文件中获取这些值,因为我们已将此文件配置到limits-servicebootstrap.properties文件中。

在下一步中,我们将创建另一个LimitsServiceApplication实例。

步骤4: 创建一个LimitsServiceApplication实例。

右键单击limits-service项目 -> Run As -> Run Configurations… -> 右键单击LimitsServiceApplication -> 复制 -> 将应用程序名称重命名为LimitsServiceApplication8081 -> 点击Arguments选项卡 -> 提供VM参数:-Dserver.port=8081 -> 运行。

understanding-the-need-for-spring-cloud-bus.png

将在端口8081上运行LimitsServiceApplication的一个实例。

步骤5: 打开浏览器,调用URL http://locahost:8081/limits。它返回与原始limits-service发送的相同响应。

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

两个limits-service实例正在运行。

步骤6:limits-service-qa.properties中进行更改,我们已将最小值从2更改为22

limits-service-qa.properties

limits-service.minimum=22  
limits-service.maximum=222  

我们需要提交这些更改。

步骤7: 打开Git Bash并运行以下命令:

$ cd git-localconfig-repo  
$ git add *  
$ git commit –m "qa minimum to 22"  

understanding-the-need-for-spring-cloud-bus-1.png

再次调用URL http://localhost:8080/limitshttp://localhost:8081/limits。两个URL都返回旧值,尽管我们已将值提交到Git存储库中。它不会反映在limits-service中的更改。为了使更改在limits-service中生效,我们将使用Postman

注意:在继续下一步之前,从limits-service中移除安全性。

步骤8: 打开limits-service.properties文件,并通过以下语句禁用security

management.security.enabled=**false**

再次在limits-service-qa.properties文件中设置旧值,并提交更改。

步骤9: 打开Postman,并发送一个带有URL http://localhost:8080/application/refreshPOST请求。

注意:如果调用URL http://localhost:8080/limits 并且它不返回新值。因此,为了在调用URL http://localhost:8081/limits 时获取新值,您必须执行以下操作:打开Postman并发送一个带有URL http://localhost:8081/application/refreshPOST请求。

步骤10: 调用URL http://localhost:8080/limitshttp://localhost:8081/limits。现在,两个URL都返回更改后的值。

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

我们创建了两个limits-service的实例。假设有一百个limits-service的实例并行运行。我们需要调用一百个URL以从Git存储库刷新配置。

随着limits-service的数量增加,调用一百个URL变得不容易。此外,服务的维护工作也会增加。

无论何时更改配置,它都必须反映在微服务中。在这里,Spring Cloud Bus为此提供了解决方案,因此我们无需调用一百个URL。

Spring Cloud Bus为所有一百个实例提供了一个URL。当我们调用该URL时,所有微服务的实例都将从Git配置中获取最新的值。

在下一步中,我们将实现Spring Cloud Bus。

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