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