分布式之配置中心config

2021-10-17 08:46:31 字數 3971 閱讀 5064

一、配置中心服務端

依賴

>

>

org.springframework.cloudgroupid

>

>

spring-cloud-config-serverartifactid

>

dependency

>

新建乙個配置中心專案,啟動類加註解@enableconfigserver

@enableconfigserver

public

class

}

配置檔案
server

:port

:3344

spring::

name

: cloud-config-center

cloud

:config

:server

:git

:# git倉庫位址

#username:*****

#password:*****

uri:

search-paths

:- springcloud-config # 目錄

label

: master # 分支

二、客戶端

依賴

>

>

org.springframework.cloudgroupid

>

>

spring-cloud-starter-configartifactid

>

dependency

>

配置檔案

server

# 配置中心位址

label

: master # 分支名稱

name

: config # 配置檔案名稱

profile

: dev # 字尾名稱 結合在一起就是:master分支上的config-dev.yml配置檔案 http://localhost:3344/master/config-dev.yml

# 暴露監控端點,為了實現動態更新

management

:endpoints

:web

:exposure

:include

:"*"

動態更新,當git上配置檔案更新時,在不重啟專案的情況下,獲取最新的配置資訊

除了配置檔案中暴露監控端點(需要依賴spring-boot-starter-actuator),還需要在獲取配置資訊的類上加註解@refreshscope

比如,現在git上配置檔案中有乙個config.info,當git上的config.info值更新時,需要傳送乙個post請求:http://localhost:3355/actuator/refresh,此時客戶端就更獲取到最新的配置資訊

@refreshscope

//重新整理

@restcontroller

public

class

configcontroller")

private string config;

("/getconfiginfo"

)public string getconfiginfo()

}

但是上述的動態更新還是太麻煩,當存在多個配置客戶端時,需要對每個客戶端傳送post重新整理請求,所以還可以利用bus匯流排進行廣播通知進行全域性重新整理。

4.1 首先需要使用rabbitmq訊息佇列,給配置中心和客戶端新增依賴

>

>

org.springframework.cloudgroupid

>

>

spring-cloud-starter-bus-amqpartifactid

>

dependency

>

4.2 修改配置檔案

配置中心:

server

:port

:3344

spring::

name

: cloud-config-center

cloud

:config

:server

:git

:uri

: # git倉庫位址

search-paths

:- springcloud-config # 目錄

label

: master # 分支

#rabbitmq配置

rabbitmq

:host

: 111.229.173.132

port

:5672

username

: guest

password

: guest

#rabbitmq相關配置,暴露bus重新整理配置的端點

management

:endpoints

:web

:exposure

:include

: 'bus-refresh' #bus-refresh對應後續的post請求

# 服務註冊到eureka

eureka

:client

:service-url

:defaultzone

: http://localhost:7001/eureka

客戶端:
server

# 配置中心位址

label

: master # 分支名稱

name

: config # 配置檔案名稱

profile

: dev # 字尾名稱 結合在一起就是:master分支上的config-dev.yml配置檔案 http://localhost:3344/master/config-dev.yml

#rabbitmq配置

# 暴露監控端點

management

:endpoints

:web

:exposure

:include

:"*"

4.3 此時如果對gitee上的配置檔案進行修改,只需要對配置中心傳送乙個post請求 (http://localhost:3344/actuator/bus-refresh) 即可重新整理所有的客戶端的配置,而不需要對每個客戶端傳送

Config分布式配置中心介紹

微服務意味著要將單體應用中的業務拆分成乙個個子服務,每個服務的粒度相對較小,因此系統中會出現大量的服務。由於每個服務都需要必要的配置資訊才能執行,所以一套集中式的 動態的配置管理設施是必不可少的。springcloud config為微服務架構中的微服務提供集中化的外部配置支援,配置伺服器為各個不同...

分布式配置中心Config整合使用

config的作用 config是分布式配置中心,用來集中管理微服務的配置檔案,一般情況下,應用的配置檔案是放在專案中的,修改了之後需要重新啟動,但是在微服務架構中,雖然應用的配置檔案不如mvc那麼多,但是隨著服務數量的增加,每個服務都有自己的配置檔案,按照一般的方法需要逐個修改重啟,相當麻煩,通過...

分布式配置中心

部署演進 單機配置檔案部署 當隨著業務的使用者量增加,通常我們會把我們的服務進行多機器 集群 部署。這時候,配置的發布就變成了如下,多機器配置 1.2 分配式配中心 傳統配置的方式已經暴露出了很多問題,其餘的諸如 歷史版本管理,許可權控制,安全性等等問題,是傳統的配置檔案無法處理的 隨著業務的發展 ...