前幾天對Apollo配置中心的demo進行一個部署試用,現公司已決定使用,這兩天進行分布式部署的時候,每一步都踩着坑過來的。是以寫文檔與需要的朋友分享。
此篇文章不代表官方部署流程,隻是自己的部署的實踐方式,屏蔽了一些官方的多餘的部署講解。如果有問題還請到Apollo的wiki文檔進行檢視:https://github.com/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97
另外,真想吐槽下Apollo配置中心部署惡心度真的是……,吐槽歸吐槽,但是Apollo配置中心的功能強大而且具有非常高的可用性,在同類型産品裡也算是數一數二。
在進行分布式部署前我還是建議用Apollo的quick start版本進行試用。可以參考我這篇文章《基于winserver部署Apollo初次體驗(附.net用戶端demo)》
jdk18+
gitbash
mysql 5.6.5+
Apollo
apollo-configservice
作為用戶端的擷取配置的接口服務,與用戶端進行Http long polling,實作配置更新的退送與拉取
apollo-adminservice
作為管理背景的接口服務,提供配置管理、修改、釋出
apollo-portal
Web管理配置背景
以下正式開始部署
源碼\scripts\sql下兩腳本,到mysql執行
apolloconfigdb.sql
apolloportaldb.sql
切換到上面已下載下傳阿波羅源碼\scripts目錄下,運作build.bat。需要等待幾分鐘,編譯完成後,準備三個服務部署,部署順序也如下
apollo-porta
源碼\apollo-configservice\target\apollo-configservice-0.11.0-SNAPSHOT-github.zip
解壓到需要部署的伺服器檔案夾
添加檔案application-github.properties,内容如下:
編輯\scripts\startup.sh,修改日志目錄
輕按兩下startup.sh啟動服務。
啟動完後檢視日志,如果出現下面資訊,請耐心等待幾分鐘,輸入localhost:8080嘗試
源碼\apollo-adminservice\target\apollo-adminservice-0.11.0-SNAPSHOT-github.zip
同上步驟2、3、4、5(注意資料庫資訊、日志目錄對應修改)
localhost:8090嘗試
源碼\apollo-portal\target\apollo-portal-0.11.0-SNAPSHOT-github.zip
添加檔案application-github.properties,内容如下(注意資料庫連接配接與前兩者不一樣)
編輯\scripts\startup.sh,修改日志目錄與端口号
輕按兩下startup.sh啟動服務
輸入localhost:8070嘗試,如日志沒其他異常,等待幾分鐘再次嘗試通路
在C:\opt\settings 添加檔案server.properties内容:
env=DEV
以上為單機部署的流程,下面講解叢集部署的流程:
Eureka與apollo-configservice為同一個JVM程序,為了好描述拆開了。
在apollo-configservice與apollo-adminservice啟動時會向Eureka進行服務注冊,Apollo用戶端和apollo-Portal會從Eureka進行服務查找,然後通過服務位址直接通路
每個服務都是無狀态的,是以橫向擴充相對比較簡單
update apolloconfigdb.serverconfig set value = 'http://10.1.20.137:8080/eureka/' where id = 1
到B伺服器重複上述兩個服務的部署步驟(注意基本環境的安裝)
輸入http://10.1.20.137:8080進行檢視,eureka管理界面status出現多台主機名稱為部署成功。
以上為我與大家分享的部署流程,如有問題可以及時在下方評論與我,我會盡快回複
作 者:
陳珙
出 處:http://www.cnblogs.com/skychen1218/
關于作者:專注于微軟平台的項目開發。如有問題或建議,請多多賜教!
版權聲明:本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連結。
聲援部落客:如果您覺得文章對您有幫助,可以點選文章右下角推薦一下。您的鼓勵是作者堅持原創和持續寫作的最大動力!