一、準備工作
1.1 運行時環境
1.1.1 OS
服務端基於Spring Boot,啓動腳本理論上支持所有Linux發行版,建議CentOS 7。
1.1.2 Java
- Apollo服務端:1.8+
- Apollo客戶端:1.7+
1.2 MySQL
- 版本要求:5.6.5+
二、部署步驟
部署步驟共三步:
- 創建數據庫
- Apollo服務端依賴於MySQL數據庫,所以需要事先創建並完成初始化
- 獲取安裝包
- Apollo服務端安裝包共有3個:apollo-configservice, apollo-adminservice, apollo-portal
- 可以直接下載我們事先打好的安裝包,也可以自己通過源碼構建
- Apollo服務端安裝包共有3個:apollo-configservice, apollo-adminservice, apollo-portal
- 部署Apollo服務端
- 獲取安裝包後就可以部署到公司的測試和生產環境了
2.1 創建數據庫
Apollo服務端共需要兩個數據庫:ApolloPortalDB
和ApolloConfigDB
,我們把數據庫、表的創建和樣例數據都分別準備了sql文件(從GitHub Release頁面下載最新版本源碼),只需要導入數據庫即可。
2.1.1 創建ApolloPortalDB
通過各種MySQL客戶端導入scripts/db/migration/portaldb/V1.0.0__initialization.sql
即可。
2.1.2 創建ApolloConfigDB
通過各種MySQL客戶端導入scripts/db/migration/configdb/V1.0.0__initialization.sql即可。
2.1.3 調整服務端配置
2.1.3.1 調整ApolloPortalDB配置
配置項統一存儲在ApolloPortalDB.ServerConfig表中,也可以通過管理員工具 - 系統參數
頁面進行配置,無特殊說明則修改完一分鐘實時生效。
1.apollo.portal.envs - 可支持的環境列表
默認值是dev,如果portal需要管理多個環境的話,以逗號分隔即可(大小寫不敏感),如:
DEV,FAT,UAT,PRO
2.organizations - 部門列表
Portal中新建的App都需要選擇部門,所以需要在這裏配置可選的部門信息,樣例如下:
[{"orgId":"TEST1","orgName":"樣例部門1"},{"orgId":"TEST2","orgName":"樣例部門2"}]
2.1.3.2 調整ApolloConfigDB配置
配置項統一存儲在ApolloConfigDB.ServerConfig表中,需要注意每個環境的ApolloConfigDB.ServerConfig都需要單獨配置,修改完一分鐘實時生效。
1. eureka.service.url - Eureka服務Url(必須修改)
不管是apollo-configservice還是apollo-adminservice都需要向eureka服務註冊,所以需要配置eureka服務地址。 按照目前的實現,apollo-configservice本身就是一個eureka服務,所以只需要填入apollo-configservice的地址即可,如有多個,用逗號分隔(注意不要忘了/eureka/後綴),樣例如下:
http://1.1.1.1:8080/eureka/,http://2.2.2.2:8080/eureka/
2.2 獲取安裝包並修改配置
2.2.1 直接下載安裝包
2.2.1.1 獲取apollo-configservice、apollo-adminservice、apollo-portal安裝包
從GitHub Release頁面下載最新版本的apollo-configservice-x.x.x-github.zip
、apollo-adminservice-x.x.x-github.zip
和apollo-portal-x.x.x-github.zip
即可。
2.2.2 配置數據庫連接信息
Apollo服務端需要知道如何連接到你前面創建的數據庫,數據庫連接串信息位於上一步下載的壓縮包(apollo-configservice-x.x.x-github.zip
、apollo-adminservice-x.x.x-github.zip
和apollo-portal-x.x.x-github.zip
)中的config/application-github.properties
中
2.2.3 配置apollo-portal的meta service信息
Apollo Portal需要在不同的環境訪問不同的meta service(apollo-configservice)地址,所以我們需要在配置中提供這些信息。默認情況下,meta service和config service是部署在同一個JVM進程,所以meta service的地址就是config service的地址。
使用程序員專用編輯器(如vim,notepad++,sublime等)打開apollo-portal-x.x.x-github.zip
中config
目錄下的apollo-env.properties
文件。
dev.meta=http://1.1.1.1:8080
fat.meta=http://apollo.fat.xxx.com
uat.meta=http://apollo.uat.xxx.com
pro.meta=http://apollo.xxx.com
注1: 爲了實現meta service的高可用,推薦通過SLB(Software Load Balancer)做動態負載均衡
2.3 部署Apollo服務端
2.3.1 部署apollo-configservice
將對應環境的apollo-configservice-x.x.x-github.zip
上傳到服務器上,解壓後執行scripts/startup.sh即可。如需停止服務,執行scripts/shutdown.sh.
2.3.2 部署apollo-adminservice
將對應環境的apollo-adminservice-x.x.x-github.zip
上傳到服務器上,解壓後執行scripts/startup.sh即可。如需停止服務,執行scripts/shutdown.sh.
2.3.3 部署apollo-portal
將apollo-portal-x.x.x-github.zip
上傳到服務器上,解壓後執行scripts/startup.sh即可。如需停止服務,執行scripts/shutdown.sh.
打開portal頁面驗證啓動成功:http://127.0.0.1:8070/