本文轉(zhuǎn)載自:https://www.datawisher.cn/
Apollo(阿波羅)是攜程框架部門(mén)研發(fā)的分布式配置中心胖眷,能夠集中化管理應(yīng)用不同環(huán)境武通、不同集群的配置,配置修改后能夠?qū)崟r(shí)推送到應(yīng)用端珊搀,并且具備規(guī)范的權(quán)限、流程治理等特性境析,適用于微服務(wù)配置管理場(chǎng)景囚枪。
Apollo 和Spring Cloud Config 對(duì)比
功能點(diǎn) | Apollo | Spring Cloud Config |
---|---|---|
配置界面 | 統(tǒng)一管理不同環(huán)境 / 集群環(huán)境 | 無(wú),通過(guò)git操作 |
配置生效時(shí)間 | 實(shí)時(shí) | 重啟生效劳淆,或者Refresh链沼,或者git hook + MQ 擴(kuò)展 |
版本管理 | 界面直接提供發(fā)布?xì)v史和回滾按鈕 | 無(wú),通過(guò)git操作 |
灰度發(fā)布 | 支持 | 不支持 |
授權(quán) / 審計(jì) / 審核 | 界面直接操作沛鸵,且支持修改和發(fā)布權(quán)限分離 | 需要通過(guò)git倉(cāng)庫(kù)設(shè)置括勺,且不支持修改和發(fā)布權(quán)限分離 |
實(shí)例配置監(jiān)控 | 可以方便的看到當(dāng)前哪些客戶端在使用哪些配置 | 不支持 |
配置獲取性能 | 快缆八,通過(guò)數(shù)據(jù)庫(kù)訪問(wèn) + 緩存支持 | 較慢,需要通過(guò)git clone repo疾捍,然后本地文件讀取 |
客戶端支持 | 原生支持Java/.Net奈辰,提供API,支持Spring annotation | Spring應(yīng)用 + annotation支持 |
項(xiàng)目實(shí)戰(zhàn)
explore-ctrip-apollo
apollo安裝啟動(dòng)
https://github.com/ctripcorp/apollo/wiki/Quick-Start
項(xiàng)目配置
可以在Spring Boot的application.properties或bootstrap.properties中指定
app.id
和apollo.meta
乱豆。
Apollo支持應(yīng)用在不同的環(huán)境有不同的配置奖恰,所以需要在運(yùn)行提供給Apollo客戶端當(dāng)前環(huán)境的Apollo Meta Server信息。默認(rèn)情況下宛裕,meta server和config service是部署在同一個(gè)JVM進(jìn)程瑟啃,所以meta server的地址就是config service的地址。也可通過(guò)server.properties配置文件,這個(gè)也是本地緩存路徑的位置
/opt/settings/server.properties
本地緩存文件名的組成:{appId}+{cluster}+{namespace}.properties也可通過(guò)app.properties配置文件
classpath:/META-INF/app.properties