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

1 篇文章 0 订阅

内容参考Apollo官网https://www.apolloconfig.com/

1. 部署架构

分布式部署需要事先确定部署的环境以及部署方式,Apollo目前支持以下环境:

  • DEV

开发环境

  • FAT

测试环境,相当于alpha环境(功能测试)

  • UAT

集成环境,相当于beta环境(回归测试)

  • PRO

生产环境

另外也可以添加自定义环境。

本次演示部署架构图如下:

以上面的架构图为例:

  • Portal部署在生产环境的机房,通过它来直接管理多个环境(DEV、FAT、UAT、PRO等环境)的配置
  • Config Service和Admin Service在每个环境都单独部署,使用独立的数据库
  • Config Service和Admin Service部署在同一台服务器。

注意:具体部署方案,可以根据实际情况进行调整,如何调整可参考后面的部署讲解。

2. 环境

2.1 环境说明

  • apollo-portal是配置的管理端,可以统一管理多套环境的配置(apollo节点)。也可以每套环境独立部署一个apollo-portal,只管理该环境的配置(apollo节点)。
  • 每个节点部署一个apollo-configservice和apollo-adminservice
  • 每套环境可以部署多个节点,建议生产环境部署两个以上的节点。开发环境的节点个数可自行决定,可以只部署一个节点。
  • apollo-portal需要访问ApolloPortalDB数据库。
  • 每套环境需要有一个独立的ApolloConfigDB数据库,同一套环境的apollo-configservice和apollo-configservice访问同一个ApolloConfigDB数据库。

2.2 部署案例说明

以下的案例中,将会演示:

  • 在DEV、FAT、UAT、PRO环境各部署一套Apollo。
  • 每套环境部署两个apollo节点,每个节点包含一个apollo-configservice和一个apollo-adminservice。
  • 部署一个apollo-portal,管理多套环境。

2.3 软件准备

MySQL5.7或以上版本:数据库服务器需要安装5.7或以上的MySQL数据库

JDK1.8:非数据库服务器都要安装JDK1.8。

2.4 服务器准备

环境

服务器

服务

端口

/

192.168.35.100

apollo-portal

8070

192.168.35.102

MySQL数据库ApolloPortalDB

3306

DEV

192.168.35.105

apollo-configservice

8080

apollo-adminservice

8090

192.168.35.106

apollo-configservice

8080

apollo-adminservice

8090

192.168.35.108

MySQL数据库ApolloConfigDB

3306

FAT

192.168.35.115

apollo-configservice

8080

apollo-adminservice

8090

192.168.35.116

apollo-configservice
apollo-adminservice

8080
8090

192.168.35.118

MySQL数据库ApolloConfigDB

3306

UAT

192.168.35.125

apollo-configservice

8080

apollo-adminservice

8090

192.168.35.126

apollo-configservice

8080

apollo-adminservice

8090

192.168.35.128

MySQL数据库ApolloConfigDB

3306

PRO

192.168.35.135

apollo-configservice

8080

apollo-adminservice

8090

192.168.35.136

apollo-configservice

8080

apollo-adminservice

8090

192.168.35.138

MySQL数据库ApolloConfigDB

3306

3. 创建数据库

3.1 ApolloConfigDB

创建ApolloConfigDB

每套环境中都创建一个ApolloConfigDB数据库,并导入ApolloConfigDB.sql。DEV环境是192.168.35.108,FAT环境是192.168.35.118,UAT环境是192.168.35.128,PRO环境是192.168.35.138。

调整ApolloConfigDB.ServerConfig表的数据

当前环境只有一个节点时(并且configservice和adminservice部署在同一个机器),则可以跳过本步骤;有多个节点时(或者单节点情况下configservice和adminservice部署在不同的机器),需要修改eureka.service.url的值为当前环境的apollo-configservice的地址和端口,注意多个地址之间用英文逗号隔开。

  • 在DEV环境中ApolloConfigDB.ServerConfig表中设置eureka.service.url为:
http://192.168.35.105:8080/eureka/,http://192.168.35.106:8080/eureka/
  • 在FAT环境中ApolloConfigDB.ServerConfig表中设置eureka.service.url为:
http://192.168.35.115:8080/eureka/,http://192.168.35.116:8080/eureka/
  • 在UAT环境中ApolloConfigDB.ServerConfig表中设置eureka.service.url为:
http://192.168.35.125:8080/eureka/,http://192.168.35.126:8080/eureka/
  • 在PRO环境中ApolloConfigDB.ServerConfig表中设置eureka.service.url为:
http://192.168.35.135:8080/eureka/,http://192.168.35.136:8080/eureka/

3.2 ApolloPortalDB

创建ApolloPortalDB数据库

192.168.35.102创建一个ApolloPortalDB数据库,导入ApolloPortalDB.sql

调整ApolloPortalDB.ServerConfig表的数据

portal默认支持的环境是DEV,若需要支持其它环境,需要修改apollo.portal.envs的值,默认值是DEV,修改为以下值,表示支持DEV、FAT、UAT、PRO四个环境,注意每个环境值之间用英文逗号隔开:

DEV,FAT,UAT,PRO

注意:只在数据库添加环境是不起作用的,还需要为apollo-portal添加新增环境对应的meta server地址,具体请参后续章节中的部署apollo-portal。

4. 部署Apollo

本次演示中,每套环境都安装两个apollo节点,每个apollo节点包含一个apollo-configservice和apollo-adminservice。实际部署中,可自行决定apollo节点的个数。

4.1 部署apollo-configservice

1) 解压apollo-configservice-x.x.x-github.zip。

2) 配置数据库连接。修改config/application-github.properties,填写当前环境的ApolloConfigDB数据库连接串信息,注意用户名和密码后面不要有空格。修改完的效果如下:

# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd

注意:上面的localhost改成对应环境的数据库ip,someuser和somepwd改成对应数据库的用户名和密码。

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

3) 验证:在浏览器上登录apollo-configservice的http://ip:port,查看apollo-configservice的状态是否为UP,且节点个数正确。

4.2 部署apollo-adminservice

1) 解压apollo-adminservice-x.x.x-github.zip。

2) 修改config/application-github.properties,填写正确的ApolloConfigDB数据库连接串信息,注意用户名和密码后面不要有空格。修改完的效果如下:

# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd

注意:上面的localhost改成对应环境的数据库ip,someuser和somepwd改成对应数据库的用户名和密码。

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

4) 执行scripts/startup.sh启动。

5) 验证:在浏览器上登录apollo-configservice的http://ip:port,查看apollo-adminservice的状态是否为UP,且节点个数正确。

4.3 部署apollo-portal

本次演示中,只部署了一个apollo-portal,用来管理所有环境的apollo节点。实际部署中,也可以每套环境都部署一个apollo-portal,管理各自环境的apollo-portal,下面也会有提示如何在每个环境单独部署一个apollo-portal。

1) 解压apollo-portal-x.x.x-github.zip。

2) 修改config/application-github.properties,填写正确的ApolloServiceDB数据库连接串信息,注意用户名和密码后面不要有空格。修改完的效果如下:

# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd

注意:上面的localhost改成对应环境的数据库ip,someuser和somepwd改成对应数据库的用户名和密码。

3) 配置meta service信息。meta service的地址和端口,默认就是apollo-configservice的地址和端口。修改config/apollo-env.properties,填写当前的apollo-portal要管理的环境的apollo-configservice的地址和端口,多个地址之间用英文逗号隔开。修改完后的效果如下:

dev.meta=http://192.168.35.105:8080,http://192.168.35.106:8080
fat.meta=http://192.168.35.115:8080,http://192.168.35.116:8080
uat.meta=http://192.168.35.125:8080,http://192.168.35.126:8080
pro.meta=http://192.168.35.135:8080,http://192.168.35.136:8080

注意:上面的配置表示当前的apollo-portal要管理dev、fat、uat、pro四套环境的apollo节点,每个环境的节点数是两个。若只需要dev环境,只需要配置dev.meta的信息即可。

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

5) 执行scripts/startup.sh启动。

6) 验证:见【启动成功检查】。

4.4 启动成功检查

apollo-configservice和apollo-adminservice检查

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

2) 查看该环境的apollo-configservice和apollo-adminservice的节点数是否正常。

apollo-portal检查

1) 浏览器登录apollo-portal的http://ip:port,默认账号apollo,密码admin。

2) 点击默认的项目SampleApp,或点击【创建项目】,创建一个新的项目

3) 点击查看SampleApp,或点击查看新创建的项目,确认左边的环境列表是否符合中ApolloPortalDB.ServerConfig中apollo.portal.envs的配置,以及新增namespace、发布配置等是否成功。

参考

更详细的配置可以参考apollo官方Home · apolloconfig/apollo Wiki · GitHub

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值