一、配置中心服務端
依賴
>
>
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 分配式配中心 傳統配置的方式已經暴露出了很多問題,其餘的諸如 歷史版本管理,許可權控制,安全性等等問題,是傳統的配置檔案無法處理的 隨著業務的發展 ...