分佈式配置中心Apollo系列--生產環境搭建

一、準備工作

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+

二、部署步驟

部署步驟共三步:

  1. 創建數據庫
    • Apollo服務端依賴於MySQL數據庫,所以需要事先創建並完成初始化
  2. 獲取安裝包
    • Apollo服務端安裝包共有3個:apollo-configservice, apollo-adminservice, apollo-portal
      • 可以直接下載我們事先打好的安裝包,也可以自己通過源碼構建
  3. 部署Apollo服務端
    • 獲取安裝包後就可以部署到公司的測試和生產環境了

2.1 創建數據庫

Apollo服務端共需要兩個數據庫:ApolloPortalDBApolloConfigDB,我們把數據庫、表的創建和樣例數據都分別準備了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.zipapollo-adminservice-x.x.x-github.zipapollo-portal-x.x.x-github.zip即可。

2.2.2 配置數據庫連接信息

Apollo服務端需要知道如何連接到你前面創建的數據庫,數據庫連接串信息位於上一步下載的壓縮包(apollo-configservice-x.x.x-github.zipapollo-adminservice-x.x.x-github.zipapollo-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.zipconfig目錄下的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/

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章