javascript
Spring Cloud教程–使用Spring Cloud Bus自动刷新配置更改
問題
在上一篇文章Spring Cloud Config Server簡介 ( http://sivalabs.in/2017/08/spring-cloud-tutorials-introduction-to-spring-cloud-config-server/ )中,我們已經了解了如何使用Spring Cloud配置服務器。
但是,問題是要重新加載Config Client應用程序中的配置更改,我們需要手動觸發/ refresh端點。 如果您有大量的應用程序,這是不切實際和可行的。
解
Spring Cloud Bus模塊可用于通過消息代理鏈接多個應用程序,并且我們可以廣播配置更改。
讓我們看看如何使用RabbitMQ作為消息代理,并連接多個應用程序以接收配置更改事件并刷新邊界屬性值。
在上一篇文章中,我們創建了Catalog-service作為SpringBoot應用程序,該應用程序充當Config Client。
讓我們將Cloud Bus AMQP啟動器添加到catalog-service / pom.xml 。
我們將使用RabbitMQ作為消息代理來廣播配置更改。 我們可以在本地計算機上安裝RabbitMQ或在Docker容器中運行。 我將使用以下docker-compose.yml配置在docker容器中運行Rabbitmq。
version: '2'services:rabbitmq:container_name: rabbitmq-serverimage: 'rabbitmq:management'environment:- RABBITMQ_DEFAULT_USER=guest- RABBITMQ_DEFAULT_PASS=guestports:- "5672:5672"- "15672:15672"現在運行docker -compose啟動rabbitmq容器。
接下來,我們需要在目錄服務屬性文件中配置RabbitMQ服務器的詳細信息。
config-repo / catalogservice.properties
spring.rabbitmq.host=localhost spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest現在,我們可以運行catalog-service并重新加載配置更改,我們可以觸發POST – http:// localhost:8181 / bus / refresh而不是http:// localhost:8181 / refresh 。
接下來,讓我們創建另一個在端口8282上運行的SpringBoot應用程序訂購服務 ,并配置Cloud Config Client,與目錄服務相同的Cloud Bus AMQP。 訂單服務也與目錄服務連接到同一RabbitMQ消息代理。
現在運行應該在http:// localhost:8282上運行的訂購服務應用程序。
現在,如果您同時更新商品目錄服務和訂購服務的屬性并提交更改,則只需在任何一個應用程序上觸發/ bus / refresh。 這將自動向所有訂閱RabbitMQ的服務廣播配置更改并刷新屬性。
不僅是不同的應用程序,您可能還在不同的端口上運行同一應用程序的多個實例。 在這些情況下,相同的過程也適用。
因此,使用Spring Cloud Bus AMQP,只需一個/ bus / refresh請求就可以輕松重新加載任意數量的應用程序的配置更改。
本文的源代碼位于https://github.com/sivaprasadreddy/spring-cloud-tutorial。
翻譯自: https://www.javacodegeeks.com/2017/08/spring-cloud-tutorials-auto-refresh-config-changes-using-spring-cloud-bus.html
總結
以上是生活随笔為你收集整理的Spring Cloud教程–使用Spring Cloud Bus自动刷新配置更改的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国产沃尔沃 EX30 现身工信部:提供双
- 下一篇: 专家:苹果虚标5G有损中国5G声誉 要求