apollo 配置中心_Apollo配置中心搭建笔记
如我所愿,十一小長假之前成功跳槽了。
由于準(zhǔn)備還算充分,offer拿了不少,漲幅也普遍達(dá)到了預(yù)期。
但是在offer對比過程中我還是糾結(jié)了許久。在薪資差別不大的情況下,主要考慮的是平臺規(guī)模、業(yè)務(wù)前景、以及個(gè)人發(fā)展空間,其次是加班情況、辦公環(huán)境、企業(yè)文化、其他福利待遇等。按照這個(gè)排序規(guī)則,我最終選擇了一家業(yè)務(wù)相對比較忙的上市金融公司,而放棄了另外一家比較沒那么忙的音頻行業(yè)巨頭。
選擇忙碌而放棄安逸,希望將來能得到更高的鍛煉和提升。
假期過了一半,閑來無事,該學(xué)習(xí)下了。新項(xiàng)目中用到了Apollo作為配置中心(我之前用的是平安的deops),現(xiàn)在動手搭建一下。
Apollo(阿波羅)是攜程框架部門研發(fā)的分布式配置中心,能夠集中化管理應(yīng)用不同環(huán)境、不同集群的配置,配置修改后能夠?qū)崟r(shí)推送到應(yīng)用端,并且具備規(guī)范的權(quán)限、流程治理等特性,適用于微服務(wù)配置管理場景。
現(xiàn)已開源,github地址為:https://github.com/ctripcorp/apollo
一、Apollo搭建
拉取源碼到本地先看看項(xiàng)目結(jié)構(gòu),習(xí)慣性看看ReadMe.md文件,里面一般會對項(xiàng)目各模塊做簡單介紹。果然,里面提供了快速部署參見文檔。
https://github.com/ctripcorp/apollo/wiki/Quick-Start
Quick Start文檔顯示,Apollo是通過mysql數(shù)據(jù)庫來保存配置信息的,部署前先導(dǎo)入官方提供的sql文件(項(xiàng)目中/scripts/sql/目錄下提供了的2個(gè)腳本),執(zhí)行后產(chǎn)生2個(gè)數(shù)據(jù)庫:
apolloportaldb:?存放app、namespace、用戶、角色、權(quán)限等系統(tǒng)信息。
apolloconfigdb: 存放配置項(xiàng)等信息,各環(huán)境都需要一份。
數(shù)據(jù)庫準(zhǔn)備好之后,下載官方提供的安裝包,并修改demo.sh文件中的數(shù)據(jù)庫配置為自己的數(shù)據(jù)庫信息。
上面拉取源碼主要為了熟悉apollo項(xiàng)目結(jié)構(gòu)和源代碼,可以手動打包運(yùn)行,也可以直接使用下圖中官網(wǎng)打好的包運(yùn)行。
修改數(shù)據(jù)庫配置
至此,數(shù)據(jù)庫和jar包都準(zhǔn)備好了,可以放到linux環(huán)境中啟動。
二、Apollo啟動與配置推送
將打包后的jar以及對應(yīng)目錄、demo.sh都放到Linux目錄下。
./demo.sh start? //啟動apollo
啟動之后,會占用以下三個(gè)端口:
8080:apollo-configservice服務(wù),為客戶端應(yīng)用程序提供推送配置變更、查詢配置項(xiàng)等服務(wù)。同時(shí)通過8080訪問自帶的Eureka注冊中心;
8070:apollo-portal服務(wù),apollo的web控制臺。可以在這里進(jìn)行項(xiàng)目管理、配置發(fā)布等操作;
8090:apollo-adminservice服務(wù),提供配置管理接口,提供配置修改、發(fā)布等接口,接口服務(wù)對象為apollo-portal,以及Eureka;
根據(jù)日志提示,我們可以通過?http://ip:8070/ 訪問apollo控制臺了
默認(rèn)用戶:apollo ?密碼:admin
三、Apollo的應(yīng)用demo
接下來就是springboot客戶端讀取apollo配置中心的配置項(xiàng)了。
官方提供的quick start里面有一個(gè)client demo
我們可以通過以下命令啟動這個(gè)客戶端:?
./demo.sh?client?
這個(gè)客戶端應(yīng)用demo的主要功能是根據(jù)用戶輸入的字符串從配置中心查找配置項(xiàng),找到就打印出來,沒有找到就打印undedined。
由于此時(shí)Apollo中還沒有創(chuàng)建任何項(xiàng)目及namespace,所以該client程序是查詢不到任何配置信息的。接下來我們創(chuàng)建一個(gè)項(xiàng)目:
注意appId必須要填寫client 應(yīng)用程序配置的app.id信息。因?yàn)锳pollo要根據(jù)這個(gè)appId去匹配對應(yīng)服務(wù)。
然后我們在該項(xiàng)目中添加兩個(gè)配置項(xiàng):
現(xiàn)在就可以讀取到已經(jīng)發(fā)布的配置項(xiàng)了:
OK,一個(gè)簡單的quick start實(shí)踐到此為止。
apollo配置更新策略:
總結(jié):
Apollo分布式配置中心是目前被廣泛應(yīng)用的配置中心組件,提供了配置修改實(shí)時(shí)推送的能力。
客戶端從Apollo配置中心服務(wù)端獲取到應(yīng)用的最新配置后,會保存一份在內(nèi)存中,在遇到服務(wù)不可用,或網(wǎng)絡(luò)不通的時(shí)候,依然能從本地恢復(fù)配置;
客戶端和服務(wù)端保持了一個(gè)長連接(60s,異步消息表,有任務(wù)定時(shí)掃描該表進(jìn)行通知),從而能第一時(shí)間獲得配置更新的推送。
總結(jié)
以上是生活随笔為你收集整理的apollo 配置中心_Apollo配置中心搭建笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bat贪吃蛇游戏代码_100行pytho
- 下一篇: hash hashcode变化_没想到