apollo的安装与配置

环境准备

  • CentOS 7
  • MySQL 5.7
  • Java 1.8.0

安装java环境

mkdir /data/src
cd /data/src
wget http://download.jyblife.com:8888/jdk-8u201-linux-x64.rpm --http-user=jyb --http-passwd=download8888
yum install -y jdk-8u201-linux-x64.rpm
rpm -ql jdk1.8.x86_64
ls /usr/java/jdk1.8.0_201-amd64/

vim /etc/profile
### java_home
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile

安装apollo

下载apollo安装包

官方GitHub仓库

下载三个安装包:

  1. apollo-configservice
  2. apollo-adminservice
  3. apollo-portal

以上安装包用途如下:

configservice:提供配置的读取、推送等功能,服务对象是Apollo客户端(我们自己的微服务应用)
adminservice:提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面)
portal:提供Web界面供用户管理配置
Eureka:服务注册和发现
Config Service和Admin Service都是多实例、无状态部署,所以需要将自己注册到Eureka中并保持心跳

解压安装包

mkdir /data/opt
cd /data/opt/
mkdir {apollo-configservice,apollo-adminservice,apollo-portal}
# 将上面下载的三个包解压到各自目录
unzip -d /data/opt/apollo-configservice/ /data/src/apollo-configservice*.zip
unzip -d /data/opt/apollo-adminservice/ /data/src/apollo-adminservice*.zip
unzip -d /data/opt/apollo-portal/ /data/src/apollo-portal*.zip

导入初始数据

MySQL版本:5.7
手动创建以下两个数据库:
(注意大小写。宝塔会自动改成小写!)
ApolloConfigDB
ApolloPortalDB

初始化数据:

该链接下载sql文件并在数据库里运行,以导入表结构等信息

修改配置文件

# 数据库地址和账号密码
sed -i -e 's/FillInCorrectUser/root/' \
       -e 's/FillInCorrectPassword/123456/' \
       -e 's/fill-in-the-correct-server/127.0.0.1/' \
       /data/opt/apollo-configservice/config/application-github.properties

sed -i -e 's/FillInCorrectUser/root/' \
       -e 's/FillInCorrectPassword/123456/' \
       -e 's/fill-in-the-correct-server/127.0.0.1/' \
       /data/opt/apollo-adminservice/config/application-github.properties

sed -i -e 's/FillInCorrectUser/root/' \
       -e 's/FillInCorrectPassword/123456/' \
       -e 's/fill-in-the-correct-server/127.0.0.1/' \
       /data/opt/apollo-portal/config/application-github.properties

# 启动configservice、adminservice、portal
sh /data/opt/apollo-configservice/scripts/startup.sh
wait
sh /data/opt/apollo-adminservice/scripts/startup.sh
wait
sh /data/opt/apollo-portal/scripts/startup.sh

# 这三个安装包的启动顺序是configservice、adminservice、portal。端口分别是8080,8090,8070

测试访问apollo的web管理页
默认账号密码:apollo/admin

此时会提示系统出错

在右侧的"管理员工具" -> "系统信息" 出现了异常

这里的意思就是potal 管理平台无法访问 meta servermeta server的配置地址是http://fill-in-dev-meta-server:8080 ,显然本地是不存在着个地址的。meta server 简单理解就是这里的eureka 的地址,eureka是在configservice中,所以这里应该配置confgservice地址 http://localhost:8080

vim /data/opt/apollo-portal/config/apollo-env.properties

默认配置文件如下:

local.meta=http://localhost:8080
dev.meta=http://fill-in-dev-meta-server:8080
fat.meta=http://fill-in-fat-meta-server:8080
uat.meta=http://fill-in-uat-meta-server:8080
lpt.meta=${lpt_meta}
pro.meta=http://fill-in-pro-meta-server:8080

需按自己的真实情况修改。
如这个apollo用于dev环境,则改为如下:

#local.meta=http://localhost:8080
dev.meta=http://localhost:8080
#fat.meta=http://fill-in-fat-meta-server:8080
#uat.meta=http://fill-in-uat-meta-server:8080
#lpt.meta=${lpt_meta}
#pro.meta=http://fill-in-pro-meta-server:8080
如果是集群,可在meta后配置多个地址,用逗号隔开

接着重启protal

注意:如果上面配置文件里环境用的不是dev而是其他,则需在ApolloPortalDB.ServerConfig表里将apollo.portal.envs的值改为相应的环境。
(如上述配置文件里用的是pro.meta=127.0.0.1:8080,则在apollo.portal.envs的value也要改成pro。默认是dev)

配置集群

介绍

Apollo 的集群部署通常包括以下组件:

  • Apollo Config Service:提供配置读取功能,需部署多个实例以实现高可用。该组件内嵌了 Eureka 服务
  • Apollo Admin Service:管理配置的修改,需部署多个实例。
  • Apollo Portal:提供 Web 管理界面,通常部署 1~2 个实例即可。
  • Eureka:作为服务注册中心,Apollo 的各个服务会注册到 Eureka 上。
  • 数据库:ApolloConfigDB 和 ApolloPortalDB,通常部署在独立的 MySQL 实例上,集群部署时需确保所有服务连接到同一个数据库。
    集群部署的关键是将这些服务部署到多台机器上,并通过 Eureka 实现服务发现和高可用

    部署集群

    由于 apollo-configservice 内嵌了 Eureka Server,所以需要配置多个 apollo-configservice 实例形成 Eureka 集群。
    假设有 3 台机器想部署机器(IP 为 172.17.32.9、172.17.32.10、172.17.32.11),需要分别在这三台服务器上部署 apollo-configservice 服务并运行。运行后,再修改集群配置,指向这几台服务器。
    以下是在数据库中设置 Eureka 集群的步骤:

    修改数据库

    连接数据库,更新 ApolloConfigDB.ServerConfig 表

    SELECT * FROM ApolloConfigDB.ServerConfig WHERE `Key` LIKE 'eureka%';

    默认情况下,可能会看到类似 eureka.service.url 的配置,值为 http://localhost:8080/eureka/
    将 eureka.service.url 更新为所有 apollo-configservice 实例的 Eureka 地址

    UPDATE `ServerConfig` SET `Value` = 'http://172.17.32.9:8080/eureka/,http://172.17.32.10:8080/eureka/,http://172.17.32.11:8080/eureka/' WHERE `Key` = 'eureka.service.url';

    这样,访问ip:8080 就能看到已注册的APOLLO-CONFIGSERVICE应用了。在Status能看到启用的服务器的数量则表示集群配置成功。
    apollo-administrator也是一样,在指定服务器上运行即可自动注册到集群

版权所有,转载注明来源