我們通過git 把配置文件推送到遠程倉庫做版本控制,當版本發生變化的時候,遠程倉庫通過webhook機制推送消息給 Config Server,Config Server 將修改通知發送到消息總線,然后所有的Config Client 進行配置刷新。愛掏網 - it200.com
非常巧妙的借助了Git來做配置文件修改的版本控制。愛掏網 - it200.com
public enum Format {
/**
* Indicates that the configuration specified in consul is of type native key values.
*/
KEY_VALUE,
/**
* Indicates that the configuration specified in consul is of property style i.e.,
* value of the consul key would be a list of key=value pairs separated by new lines.
*/
PROPERTIES,
/**
* Indicates that the configuration specified in consul is of YAML style i.e., value
* of the consul key would be YAML format
*/
YAML,
/**
* Indicates that the configuration specified in consul uses keys as files.
* This is useful for tools like git2consul.
*/
FILES,
}
Consul 提供以上的策略,key/value、yaml、properties,可以很簡單的通過Consule Config 的管理臺進行配置,我們主要來看FILES,就是我們也是Cloud Config 一樣,通過Git 來做版本控制,只是用Consul 做配置的分發和修改的通知。愛掏網 - it200.com
原生的Consul不支持Git來做,需要借助Consul 社區提供的另外一個工程 git2consul
非常簡單就下載就安裝好了。愛掏網 - it200.com
主要來講一下初始化腳本的 git2consul.json
{
"version":"1.0",
"local_store": "本地倉庫備份地址",
"logger":{
"name":"git2consul",
"streams":[
{
"level":"trace",
"type":"rotating-file",
"path":"生成日志路徑/git2consul.log"
}
]
},
"repos":[
{
"name":"pig-config",
"url":"遠程倉庫地址",
"include_branch_name" : true, //分支信息是否包含到請求中,建議使用
"branches":[
"dev"
],
"hooks":[
{
"type" : "polling", //更新策略定時刷新的
"interval" : "1" //1分鐘
}
]
}
]
}
啟動時候指定上邊的腳本
./git2consul --config-file git2consul.json
spring:
application:
name: pig-auth
cloud:
consul:
host: localhost
port: 8500
config:
enabled: true
format: FILES
watch:
enabled: true
prefix: ${spring.application}/${spring.profiles.active}
profiles:
active: dev
OK 已經可以使用了 git2consul 來同步你的配置文件啦。愛掏網 - it200.com
如上圖,我配置文件的例子。愛掏網 - it200.com
FILES機制和Spring Cloud Config加載類似,application.yml 會被所有微服務模塊加載公用,對應的application-name.yml 會被對應的微服務加載。愛掏網 - it200.com
- 經過整合Consul Config 已經完成了和Spring Cloud Config 相同的功能,Spring Cloud 微服務使用配置文件過程中并沒有太大區別。愛掏網 - it200.com
- 實時刷新機制和前文[《Consul微服務的配置中心體驗篇》]提到的KEY-VALUE模式沒有什么區別,git2consul 不僅支持webhook 的push,而且可以輪詢pull,類似于 Apollo 配置中心的部分功能
- [關于pig:基于Spring Cloud、oAuth2.0開發基于Vue前后分離的開發平臺,支持賬號、短信、SSO等多種登錄,提供配套視頻開發教程]
聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。