Apollo 配置中心服务使用说明

环境信息

  • Centos 7 kernel 5.4
  • Apollo 2.0.1
  • Mysql 5.7
  • Java 1.8

安装部署

分布式部署

部署服务器信息说明

环境 服务器 服务 端口
pro 172.31.88.1 apollo-portal 8070
pro 172.31.88.1 数据库 ApolloPortalDB 3306
pro 172.31.88.1 apollo-configservice 8080
pro 172.31.88.1 apollo-adminservice 8090
pro 172.31.88.1 数据库ApolloConfigDB 3306
pro 172.31.82.2 apollo-configservice 8080
pro 172.31.82.2 apollo-adminservice 8090
uat 172.31.83.3 apollo-configservice 8080
uat 172.31.83.3 apollo-adminservice 8090
uat 172.31.83.3 数据库ApolloConfigDB 3306

其中 172.31.88.1172.31.82.2pro 环境的高可用节点。172.31.83.3uat 环境的单节点。

apollo-portalApolloPortalDB 部署在 pro 环境,uat 环境共用 apollo-portalApolloPortalDB

安装 Java

在所有节点上安装 java-1.8.0

yum install -y java-1.8.0-openjdk

验证 java 安装成功

$ java -version
openjdk version "1.8.0_352"
OpenJDK Runtime Environment (build 1.8.0_352-b08)
OpenJDK 64-Bit Server VM (build 25.352-b08, mixed mode)

下载 Apollo 源码包

下载地址apollo-portal 只需要在 portal 服务器下载,apollo-adminserviceapollo-configservice 需要在所有节点上下载

wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-adminservice-2.0.1-github.zip 
wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-configservice-2.0.1-github.zip
wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-portal-2.0.1-github.zip

解压源码包

unzip apollo-adminservice-2.0.1-github.zip -d apollo-adminservice-2.0.1
unzip apollo-configservice-2.0.1-github.zip -d apollo-configservice-2.0.1
unzip apollo-portal-2.0.1-github.zip -d apollo-portal-2.0.1

准备数据库

Apollo 服务端共需要两个数据库:ApolloPortalDBApolloConfigDB [1]

需要注意的是 ApolloPortalDB 只需要在 pro 环境部署一个即可,而 ApolloConfigDB 需要在每个环境部署一套,如 fatuatpro 分别部署 3 套 ApolloConfigDB

pro 环境的数据库服务器上下载 apolloportaldb.sql 并导入数据库

pro 环境的数据库服务器上下载 apolloconfigdb.sql 并导入数据库 [2]

uat 环境的数据库服务器上下载 apolloconfigdb.sql 并导入数据库

调整 ApolloPortalDB.ServerConfig 表的数据,portal 默认支持的环境是 DEV,若需要支持其它环境,需要修改 apollo.portal.envs 的值,默认值是 DEV,修改为以下值,表示支持 UATPRO

因为 PRO 环境有多个节点,需要调整 PRO 环境的数据库表 ApolloConfigDB.ServerConfig,修改 eureka.service.url 的值为当前 PRO 环境的 apollo-configservice 的地址和端口,注意多个地址之间用英文逗号隔开。

UAT 环境只有一个节点,eureka.service.url 使用默认的 localhost 即可。

部署 Apollo

部署 apollo-configservice

配置数据库连接

修改各节点上的 apollo-configservice-2.0.1/config/application-github.properties 文件,修改其中的数据库连接为当前环境的数据库信息。

apollo-configservice-2.0.1/config/application-github.properties
spring.datasource.url = jdbc:mysql://apollo.mysql:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = WayWb+5Pw==
启动 apollo-configservice

默认的启动端口是 8080,若要修改,则将 scripts/startup.sh 中的 SERVER_PORT=${SERVER_PORT:=8080}8080 改成指定的端口即可。

执行 scripts/startup.sh 启动

$ ./scripts/startup.sh
Thu Nov 3 09:56:08 CST 2022 ==== Starting ====
Application is running as root (UID 0). This is considered insecure.
Started [22197]
Waiting for server startup...
Thu Nov 3 09:56:23 CST 2022 Server started in 15 seconds!

启动之后检查端口 8080

$ netstat -anutp | grep LIST
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 612/rpcbind
tcp 0 0 0.0.0.0:30000 0.0.0.0:* LISTEN 2595/sshd
tcp6 0 0 :::3306 :::* LISTEN 21960/mysqld
tcp6 0 0 :::111 :::* LISTEN 612/rpcbind
tcp6 0 0 :::8080 :::* LISTEN 22197/java
tcp6 0 0 :::30000 :::* LISTEN 2595/sshd

部署 apollo-adminservice

配置数据库连接

修改各节点上的 apollo-adminservice-2.0.1/config/application-github.properties,修改其中的数据库连接为当前环境的数据库信息。

apollo-adminservice-2.0.1/config/application-github.properties
spring.datasource.url = jdbc:mysql://apollo.mysql:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 1roAYNg==
启动 apollo-adminservice

默认的启动端口是 8090,若要修改,则将 scripts/startup.sh 中的 SERVER_PORT=${SERVER_PORT:=8090}8090 改成指定的端口即可。

执行 scripts/startup.sh 启动

$ ./scripts/startup.sh
Thu Nov 3 10:06:05 CST 2022 ==== Starting ====
Application is running as root (UID 0). This is considered insecure.
Started [22818]
Waiting for server startup...
Thu Nov 3 10:06:21 CST 2022 Server started in 15 seconds!

部署 apollo-portal

配置数据库连接

修改 apollo-portal 节点上的 apollo-portal-2.0.1/config/application-github.properties,修改其中的数据库连接为 ApolloPortalDB 的数据库信息。

apollo-portal-2.0.1/config/application-github.properties
# DataSource
spring.datasource.url = jdbc:mysql://pro.env.apollo.mysql:3306/ApolloPortalDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = WayWwRDNEb+5Pw==
配置 meta service 信息

meta service 的地址和端口,默认就是 apollo-configservice 的地址和端口。

修改 apollo-portal-2.0.1/config/apollo-env.properties,填写当前的 apollo-portal 要管理的环境的 apollo-configservice 的地址和端口,多个地址之间用英文逗号隔开

apollo-portal-2.0.1/config/apollo-env.properties
pro.meta=http://172.31.81.1:8080,http://172.31.82.2:8080
uat.meta=http://172.31.83.3:8080
启动 apollo-portal

默认的启动端口是 8070 ,若要修改,则将 scripts/startup.sh 中的 SERVER_PORT=${SERVER_PORT:=8070}8070 改成指定的端口即可。

$ ./scripts/startup.sh 
Thu Nov 3 10:23:32 CST 2022 ==== Starting ====
Application is running as root (UID 0). This is considered insecure.
Started [23044]
Waiting for server startup...
Thu Nov 3 10:23:47 CST 2022 Server started in 15 seconds!

部署后检查是否成功

apollo-configservice 和 apollo-adminservice 检查

  1. 在浏览器上登录当前环境的其中一个 apollo-configservicehttp://ip:port

  2. 查看该环境的 apollo-configserviceapollo-adminservice 的节点数是否正常。
    比如 PRO 环境有 2 个节点,输出中正常情况下会显示 2 个正常的节点

apollo-portal 检查

  1. 浏览器登录 apollo-portalhttp://ip:port,默认账号 apollo,密码 admin

常用操作

修改默认管理员 apollo 的密码

默认管理员 apollo 的密码为 admin,要修改此密码,在 管理员工具 -> 用户管理 中输入用户名和密码,如果用户已存在,更新用户信息,用户不存在,则创建新用户。

创建部门

只有管理员才能创建部门,在 管理员工具 -> 系统参数 中查询 organizations,会输出当前的部门信息

修改此参数并保存,即可更新部门信息。

参考链接

Apollo 配置中心介绍

Apollo分布式配置中心集群部署

脚注