Spring Cloud教程-了解Spring Cloud Bus的必要性
了解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-service的bootstrap.properties文件中。
在下一步中,我们将创建另一个LimitsServiceApplication实例。
步骤4: 创建一个LimitsServiceApplication实例。
右键单击limits-service项目 -> Run As -> Run Configurations… -> 右键单击LimitsServiceApplication -> 复制 -> 将应用程序名称重命名为LimitsServiceApplication8081 -> 点击Arguments选项卡 -> 提供VM参数:-Dserver.port=8081 -> 运行。
将在端口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"
再次调用URL http://localhost:8080/limits
和 http://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/refresh
的POST请求。
注意:如果调用URL http://localhost:8080/limits
并且它不返回新值。因此,为了在调用URL http://localhost:8081/limits
时获取新值,您必须执行以下操作:打开Postman并发送一个带有URL http://localhost:8081/application/refresh
的POST请求。
步骤10: 调用URL http://localhost:8080/limits
和 http://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。