消息總線組件SpringCloudBus

SpringCloudBus簡介

Spring Cloud Bus 將分佈式的節點用輕量的消息代理連接起來。它可以用於廣播配置文件的更改或者服務之間的通訊,也可以用於監控。本文要講述的是用Spring Cloud Bus實現通知微服務架構的配置文件的更改。

簡單的說就是你改動了Git上的配置文件,不需要重啓微服務就能自動更新配置。

還是我上一篇博客寫的微服務架構的工程來改動:hello-spring-cloud

1、配置服務端

(1)修改hello-spring-cloud-config工程 ,引入依賴

  <!--SpringCloud Bus所需要的依賴begin-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-bus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
        </dependency>
  <!--end-->

(2)修改application.yml ,添加配置

#        Spring Cloud Bus 配置begin
  rabbitmq:
    host: 192.168.88.136
management:
  endpoint:
    web:
      exposure:
        include: bus‐refresh
#      end

2、配置客戶端

hello-spring-cloud-web-admin-feign模塊爲例,加入消息總線

(1)修改hello-spring-cloud-web-admin-feign工程 ,引入依賴

        <!--SpringCloud Bus所需要的依賴begin-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-bus</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--end-->

(2)在碼雲的配置文件中配置RabbitMQ的地址:

  rabbitmq:
    host: 192.168.88.136

(3)啓動hello-spring-cloud-eurekahello-spring-cloud-confighello-spring-cloud-web-admin-feign 看是否正常運行
(4)修改碼雲上的配置文件 ,將數據庫連接IP 改爲127.0.0.1 ,在本地部署一份數據
庫。
(5)postman測試 url: http://localhost:8888/actuator/bus-refresh Method:
post (此處的作用是自動刷新碼雲的配置)出現如下圖所示:
在這裏插入圖片描述
(6)再次觀察輸出的數據是否是讀取了本地的mysql數據。

3、自定義配置的讀取

如果需要讀取yml配置中的自定義屬性則需要在controller層上加一個註解:@RefreshScope
在這裏插入圖片描述
添加後再次進行測試。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章