apollo-配置管理中心-安裝


攜程框架部門研發的分布式配置中心,能夠集中化管理應用不同環境、不同集群的配置,配置修改后能夠實時推送到應用端,並且具備規范的權限、流程治理等特性,適用於微服務配置管理場景。
環境准備
centos ==> 7+
mysql ==> 5.7+
java ==> 1.8+


下載程序包地址

源代碼地址 : https://github.com/ctripcorp/apollo/
已編譯完成程序包 : https://github.com/ctripcorp/apollo/releases
config數據庫地址 : https://github.com/ctripcorp/apollo/blob/master/scripts/db/migration/configdb/V1.0.0__initialization.sql
portal數據庫地址 : https://github.com/ctripcorp/apollo/blob/master/scripts/db/migration/portaldb/V1.0.0__initialization.sql

###本次使用已編譯完成的程序包
wget https://github.com/ctripcorp/apollo/releases/download/v1.4.0/apollo-adminservice-1.4.0-github.zip
wget https://github.com/ctripcorp/apollo/releases/download/v1.4.0/apollo-configservice-1.4.0-github.zip
wget https://github.com/ctripcorp/apollo/releases/download/v1.4.0/apollo-portal-1.4.0-github.zip

數據庫文件使用瀏覽器復制到本地文件中。


程序接口名稱及功能說明

名稱 功能說明 接口服務對象
Portal 提供Web界面供用戶管理配置 配置管理員
Admin Service 提供配置管理接口 Portal
Config Service 提供配置獲取接口 Apollo客戶端程序
Eureka Config Service和Admin Service會向Eureka注冊服務,並保持心跳 Config和Admin
Meta Server Meta Server從Eureka獲取Config Service和Admin Service的服務信息 Portal和Client

Meta Server和Config Service是在一個JVM進程中
Eureka和Config Service是在一個JVM進程中

部署分布說明

  • Portal單獨使用 ApolloPortalDB 庫,可以獨立部署

  • Config ServiceAdmin Service共用 ApolloConfigDB 庫,建議部署至同一台服務器。

  • Portal部署在生產環境的機房,通過它來直接管理FAT、UAT、PRO等環境的配置

  • Config ServiceAdmin Service在每個環境都獨立部署,使用獨立的數據庫(提供給相對應環境的客戶端程序調用配置接口)

默認支持環境說明

名稱 說明
DEV 開發環境
FAT 測試環境,相當於alpha環境(功能測試)
UAT 集成環境,相當於beta環境(回歸測試)
PRO 生產環境

安裝Config ServiceAdmin Service

  • 導入數據庫
mysql -uroot -p -e 'CREATE DATABASE IF NOT EXISTS ApolloConfigDB DEFAULT CHARACTER SET = utf8mb4'
mysql -uroot -p ApolloConfigDB < ApolloConfigDB.sql
  • 安裝程序
mkdir -p /opt/{apollo-config,apollo-admin}
unzip apollo-adminservice-1.4.0-github.zip -d /opt/apollo-admin/
unzip apollo-configservice-1.4.0-github.zip -d /opt/apollo-config/
  • 修改配置文件
vim /opt/apollo-config/config/application-github.properties
######修改config server數據庫地址以及用戶名密碼
spring.datasource.url = jdbc:mysql://10.10.10.10:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 123456



vim /opt/apollo-admin/config/application-github.properties
######修改admin server數據庫地址以及用戶名密碼
spring.datasource.url = jdbc:mysql://10.10.10.10:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 123456
  • 啟動程序
/opt/apollo-config/scripts/startup.sh
/opt/apollo-admin/scripts/startup.sh
  • 檢查啟動情況
    • 打開網頁http://10.10.10.10:8080,查看是否有APOLLO-CONFIGSERVICE以及APOLLO-ADMINSERVICE成功注冊
    • 使用命令 curl -X GET "http://10.10.10.10:8080/eureka/apps"檢查已注冊服務

同一套環境中部署Config ServiceAdmin Service集群

  • 修改數據庫配置文件
###修改 `ApolloConfigDB`.`ServerConfig`表中 `Value`選項
###將原 http://localhost:8080/eureka/ 修改為內網IP,(Eureka服務Url,多個service以英文逗號分隔)

###例如:
UPDATE `ApolloConfigDB`.`ServerConfig` SET `Value` = 'http://10.10.10.10:8080/eureka/,http://10.10.10.11:8080/eureka/' WHERE `Id` = 1
  • 部署並啟動

    • 在10.10.10.10以及10.10.10.11服務器上部署config及admin服務
    • 啟動config及admin服務
  • 檢查啟動情況

    • 打開網頁http://10.10.10.10:8080以及http://10.10.10.11:8080,兩台程序都服務注冊成功即可。
    • 使用命令 curl -X GET "http://10.10.10.10:8080/eureka/apps"檢查已注冊服務

安裝配置portal

  • 導入數據庫
mysql -uroot -p -e 'CREATE DATABASE IF NOT EXISTS ApolloPortalDB DEFAULT CHARACTER SET = utf8mb4'
mysql -uroot -p ApolloPortalDB < ApolloPortalDB.sql
  • 安裝程序
mkdir -p /opt/apollo-portal
unzip apollo-portal-1.4.0-github.zip -d /opt/apollo-portal/
  • 修改配置文件

    修改數據庫配置文件

vim /opt/apollo-portal/config/application-github.properties
######修改portal數據庫地址以及用戶名密碼
spring.datasource.url = jdbc:mysql://10.10.10.10:3306/ApolloPortalDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 123456
**修改訪問環境配置文件**
vim /opt/apollo-portal/config/apollo-env.properties
######修改各環境的eureka訪問地址,僅培訓需要的環境,如果eureka配置集群模式,填入地址,使用逗號隔開。(更建議使用域名+負載均衡)
dev.meta=http://10.10.10.10:8080,http://10.10.10.11:8080
**修改數據庫配置**

配置統一存儲在 ApolloPortalDB.ServerConfig 表中

###允許支持多環境
`apollo.portal.envs`鍵值中,如需管理多個環境的話,使用逗號隔開
例如 "DEV,FAT,UAT,PRO"
###修改部門列表信息
`organizations`鍵值中,按照樣例修改可選部門信息
###超級管理官
`superAdmin`鍵值中,擁有超級管理員權限用戶名,如需添加多個,用逗號隔開
  • 啟動程序
/opt/apollo-portal/scripts/startup.sh

添加自定義環境

必須使用源碼編譯
假設需要添加的環境名稱為PRE

  • 修改"apollo-core/src/main/java/com/ctrip/framework/apollo/core/enums/Env.java"類,在其中加入PRE枚舉
public enum Env{
  LOCAL, DEV, FWS, FAT, UAT, LPT, PRO, PRE, TOOLS, UNKNOWN;
  • 修改"apollo-core/src/main/java/com/ctrip/framework/apollo/core/enums/EnvUtils.java"類,在其中加入PRE枚舉的轉換邏輯
      case "PRO":
      case "PROD": //just in case
        return Env.PRO;
      case "PRE":
        return Env.PRE;
      case "DEV":
        return Env.DEV;
  • 修改"apollo-core/src/main/java/com/ctrip/framework/apollo/core/internals/LegacyMetaServerProvider.java"類,增加讀取PRE環境的meta server地址邏輯
    domains.put(Env.PRE, getMetaServerAddress(prop, "pre_meta", "pre.meta"));
  • 修改"apollo-portal/src/main/resources/apollo-env.properties"配置文件,增加pre.meta占位符
pre.meta=${pre_meta}
  • 編譯打包,獲取安裝包文件路徑

可以根據環境,修改 build.sh 文件中的數據庫地址配置

cd scripts
./build.sh

apollo-configservice/target/apollo-configservice-x.x.x-github.zip
apollo-adminservice/target/apollo-adminservice-x.x.x-github.zip
apollo-portal/target/apollo-portal-x.x.x-github.zip


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM