在Linux部署Apollo配置中心

前言

这篇是参考官网文档总结的Apollo分布式部署方式,包含具体步骤、资源和相关脚本,也在必要的地方给出了资料来源。

通过Apollo – 中文文档 – 部署架构[1]可以了解到单机、集群和高可用部署架构的最佳实践方式。

安装步骤

本篇实践是在Linux系统,使用Apollo 1.9.1版本为例,要求环境包含JDK 1.8+和MySQ 5.6.5+。

文内脚本执会从GitHub – Apollo releases[2]下载三个模块(Admin Service、Config Service和Portal Service)的包到~/soft/apollo目录下,解压后放在/opt/soft目录下,配置、启停都在解压目录完成,相当于工作目录。

可以先通过Apollo各模块概要[3]重点了解下三个模块的作用。

Config Service:端口是8080,里面包含Meta Server,Eureka,Config Service,其中Config Service又使用了ConfigDB

Admin Service:端口是8090,使用了ConfigDB

Portal Service:端口是8070,使用了PortalDB。

部署顺序最好是:configservice → adminservice → portal。下图是模块间的依赖关系:

在Linux部署Apollo配置中心

创建数据库

执行Github – apolloconfigdb.sql[4]来创建配置中心服务(Config Service)和配置管理服务(Admin Service)共用的的数据库ApolloConfigDB,并创建表以及数据。

执行Github – apolloportaldb.sql[5]来创建管理界面服务(Portal Service)需要的数据库ApolloPortalDB,并创建表以及数据。

部署Config Service

  • • 下载、解压

echo "下载configservice" > /dev/null
wget -P ~/soft/apollo https://github.com/apolloconfig/apollo/releases/download/v1.9.1/apollo-configservice-1.9.1-github.zip

echo "创建解压目录" > /dev/null
mkdir -p  /opt/soft/apollo

echo "解压到/opt/soft目录下" > /dev/null
unzip ~/soft/apollo/apollo-configservice-1.9.1-github.zip -d /opt/soft/apollo/configservice
  • • 修改数据库地址为ApolloConfigDB

vim /opt/soft/apollo/configservice/config/application-github.properties
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 666666
  • • 启动、停止

启动
/opt/soft/apollo/configservice/scripts/startup.sh

停止
/opt/soft/apollo/configservice/scripts/shutdown.sh

部署Admin Service

  • • 下载、解压

echo "下载adminservice" > /dev/null
wget -P ~/soft/apollo https://github.com/apolloconfig/apollo/releases/download/v1.9.1/apollo-adminservice-1.9.1-github.zip

echo "创建解压目录" > /dev/null
mkdir -p  /opt/soft/apollo

echo "解压到/opt/soft目录下" > /dev/null
unzip ~/soft/apollo/apollo-adminservice-1.9.1-github.zip -d /opt/soft/apollo/adminservice
  • • 修改数据库地址为ApolloConfigDB

vim /opt/soft/apollo/adminservice/config/application-github.properties
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 666666
  • • 启动、停止

启动
/opt/soft/apollo/adminservice/scripts/startup.sh

停止
/opt/soft/apollo/adminservice/scripts/shutdown.sh

部署Portal Service

  • • 下载、解压

echo "下载portal" > /dev/null
wget -P ~/soft/apollo https://github.com/apolloconfig/apollo/releases/download/v1.9.1/apollo-portal-1.9.1-github.zip

echo "创建解压目录" > /dev/null
mkdir -p  /opt/soft/apollo

echo "解压到/opt/soft目录下" > /dev/null
unzip ~/soft/apollo/apollo-portal-1.9.1-github.zip -d /opt/soft/apollo/portal
  • • 修改数据库地址为ApolloPortalDB

vim /opt/soft/apollo/portal/config/application-github.properties
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 666666
  • • 编辑环境配置,指定某个环境地址

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

将dev环境地址指向指定Config Service地址。

dev.meta=http://fill-in-dev-meta-server:8080
  • • 启动、停止

启动
/opt/soft/apollo/portal/scripts/startup.sh

停止
/opt/soft/apollo/portal/scripts/shutdown.sh

访问测试

通过HTTP请求http://<Portal Service IP>:8070来访问管理界面,默认用户名密码分别为apolloadmin。参考Apollo 使用指南[6]可以了解到具体使用方式。

在Linux部署Apollo配置中心

多环境方案

参考服务端配置说明[7]。配置项统一存储在ApolloPortalDB.ServerConfig表中,也可以通过管理员工具 - 系统参数页面进行配置,无特殊说明则修改完一分钟实时生效,但是修改环境得重启Portal Service。

在Linux部署Apollo配置中心
image-20211207162532401

每个环境需要按上面的步骤各自搭建一套独立的Config Service和Admin Service,并使用独立的ConfigDB。最后再配置下面两个关键参数。

  • • 可支持的环境列表(apollo.portal.envs)默认值是dev,如果portal需要管理多个环境的话,以逗号分隔即可(大小写不敏感),如:

DEV,FAT,UAT,PRO
  • • 各环境Meta Service列表(apollo.portal.meta.servers)Apollo Portal需要在不同的环境访问不同的meta service(apollo-configservice)地址,所以我们需要在配置中提供这些信息。默认情况下,meta service和config service是部署在同一个JVM进程,所以meta service的地址就是config service的地址。如:

{
    "DEV":"http://1.1.1.1:8080",
    "FAT":"http://apollo.fat.xxx.com",
    "UAT":"http://apollo.uat.xxx.com",
    "PRO":"http://apollo.xxx.com"
}

高可用方案

搭建多套加独立的Config Service和Admin Service使用同一个ConfigDB。

在填写环境Meta Service地址的时候填多个用逗号分隔就行(如:http://1.1.1.1:8080,http://2.2.2.2:8080),但推荐通过SLB(Service Load Balancer)做动态负载均衡。

如何修改端口号和日志目录?

在各模块的启动脚本(startup.sh)可以指定服务日志生成目录,和使用的端口。

在Linux部署Apollo配置中心
img

参考链接

GitHub – Apollo[8]

码云 – Apollo 镜像[9]

Apollo 中文文档[10]

Apollo 官网[11]

Apollo 使用指南[12]

引用链接

[1] Apollo – 中文文档 – 部署架构: https://www.apolloconfig.com/#/zh/deployment/deployment-architecture
[2] GitHub – Apollo releases: https://github.com/apolloconfig/apollo/releases
[3] Apollo各模块概要: https://www.apolloconfig.com/#/zh/design/apollo-design?id=_13-%e5%90%84%e6%a8%a1%e5%9d%97%e6%a6%82%e8%a6%81%e4%bb%8b%e7%bb%8d
[4] Github – apolloconfigdb.sql: https://github.com/apolloconfig/apollo/blob/master/scripts/sql/apolloconfigdb.sql
[5] Github – apolloportaldb.sql: https://github.com/apolloconfig/apollo/blob/master/scripts/sql/apolloportaldb.sql
[6] Apollo 使用指南: https://www.apolloconfig.com/#/zh/usage/apollo-user-guide
[7] 服务端配置说明: https://www.apolloconfig.com/#/zh/deployment/distributed-deployment-guide?id=%e4%b8%89%e3%80%81%e6%9c%8d%e5%8a%a1%e7%ab%af%e9%85%8d%e7%bd%ae%e8%af%b4%e6%98%8e
[8] GitHub – Apollo: https://github.com/apolloconfig/apollo
[9] 码云 – Apollo 镜像: https://gitee.com/apolloconfig/apollo
[10] Apollo 中文文档: https://www.apolloconfig.com/#/zh/README
[11] Apollo 官网: https://www.apolloconfig.com
[12] Apollo 使用指南: https://www.apolloconfig.com/#/zh/usage/apollo-user-guide


原文始发于微信公众号(我有八千部下):在Linux部署Apollo配置中心

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/102480.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!