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

原文地址:https://www.cnblogs.com/taoyuxuan/p/11585398.html