1. 程式人生 > >Config Server refresh 端點

Config Server refresh 端點

文章目錄

refresh

引入依賴

<!-- 內省 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

開啟端點

### 端點控制
management:
  endpoints:
    web:
      exposure:
        # 開啟指定端點、所有端點
        include: '*'
  endpoint:
    health:
      # 總是表示詳細資訊的顯示
      show-details: always

  進階上一節的程式碼,無需更改,如果配置中心的配置檔案更改之後,只需訪問 refresh 介面即可:

refresh

bus-refresh

bus-refresh 原理圖

  使用者更新配置資訊時,檢查到 Git Hook 變化,觸發 Hook 配置地址的呼叫,Config Server 接收到請求併發布訊息,Bus 將訊息傳送到 Config Client,當 Config Client 接收到訊息後會重新發送請求載入配置資訊,大體流程就是這樣。這裡使用的事 RabbitMQ 作為訊息中介軟體,自行安裝。

啟動 RabbitMQ

# 後臺啟動 RabbitMQ
$ rabbitmq-server -detached
Warning: PID file not written; -detached was passed.

  檢視啟動結果,Web 管理頁面需要啟動外掛。

RabbitMQ Web Manager

Config Server

引入依賴

<!-- Spring Cloud Bus Amqp -->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

配置

spring:
  # RabbitMQ 配置
  rabbitmq:
    # 地址
    host: localhost
    # 埠
    port: 5672
    # 使用者名稱
    username: admin
    # 密碼
    password: nS8KiyIu0Y7LGbvE

  啟動 Config Server 之後檢視 RabbitMQ 管理介面,可以看到新增的佇列:

Config Server 新增佇列

Config Client

引入依賴

<!-- Spring Cloud Bus Amqp -->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

配置

spring:
  # RabbitMQ 配置
  rabbitmq:
    # 地址
    host: localhost
    # 埠
    port: 5672
    # 使用者名稱
    username: admin
    # 密碼
    password: nS8KiyIu0Y7LGbvE

  啟動 Config Client 之後檢視 RabbitMQ 管理介面,可以看到新增的佇列:

Config Client 新增佇列

  配置完畢,當配置中心的配置更愛之後,只需訪問 Config Server 的 /bus-refresh 介面即可重新整理配置:

bus-refresh

原始碼:https://github.com/SlowSlicing/demo-spring-cloud-finchley/tree/ConfigServer入門