1铜秆、apollo簡介
Apollo(阿波羅)是攜程框架部門研發(fā)的分布式配置中心样漆,能夠集中化管理應(yīng)用不同環(huán)境晌缘、不同集群的配置饰豺,配置修改后能夠?qū)崟r推送到應(yīng)用端亿鲜,并且具備規(guī)范的權(quán)限、流程治理等特性冤吨,適用于微服務(wù)配置管理場景蒿柳。
服務(wù)端基于Spring Boot和Spring Cloud開發(fā)饶套,打包后可以直接運行,不需要額外安裝Tomcat等應(yīng)用容器其馏。
Java客戶端不依賴任何框架凤跑,能夠運行于所有Java運行時環(huán)境爆安,同時對Spring/Spring Boot環(huán)境也有較好的支持叛复。
.Net客戶端不依賴任何框架,能夠運行于所有.Net運行時環(huán)境扔仓。
2褐奥、Apollo的基礎(chǔ)模型
- 用戶在配置中心對配置進行修改并發(fā)布
- 配置中心通知Apollo客戶端有配置更新
- Apollo客戶端從配置中心拉取最新的配置、更新本地配置并通知到應(yīng)用
image.png
3翘簇、架構(gòu)模型
image.png
基于架構(gòu)模型做一下核心業(yè)務(wù)的源碼分析
1撬码、通過門戶發(fā)布配置,會調(diào)用admin service接口版保,將配置信息(ReleaseMessage)寫入configdb中呜笑。
2、Cofig Service會定時從數(shù)據(jù)庫中獲取配置信息彻犁。
3叫胁、Config Service如果發(fā)現(xiàn)有新的消息記錄,那么就會通知到所有的消息監(jiān)聽器
4汞幢、消息監(jiān)聽器收到配置發(fā)布的AppId+Cluster+Namespace后驼鹅,會通知對應(yīng)的客戶端
后面基于該架構(gòu)介紹配置的寫入、讀取森篷、推送等模塊的源碼输钩。