3、分布式部署

1、分布式部署需要事先确定部署的环境以及部署方式,Apollo目前支持以下环境
(1)自定义环境
          可以理解为自己本地的测试环境

(2)DEV
          可以理解为开发环境

(3)FAT
          可以理解为测试环境,相当于alpha环境(功能测试)

(4)UAT
          可以理解为集成环境,相当于beta环境(回归测试)

(5)PRO
          可以理解为生产环境

2、图解分布式部署

3、分布式部署

3、方案
          具体部署方案,需根据自己的实际情况进行调整
(1)Portal部署在生产环境,相当于web端,通过它来直接管理多个环境
          apollo-portal是配置的管理端,可以统一管理多套环境的配置(apollo节点)。也可以每套环境独立部署一个apollo-portal,只管理该环境的配置(apollo节点)。
          apollo-portal需要访问ApolloPortalDB数据库。

(2)Config Service和Admin Service在每个环境都单独部署,使用独立的数据库
          每个节点部署一个apollo-configservice和apollo-adminservice
          每套环境可以部署多个节点,建议生产环境部署两个以上的节点。开发环境的节点个数可自行决定,可以只部署一个节点。
          每套环境需要有一个独立的ApolloConfigDB数据库,同一套环境的apollo-configservice和apollo-configservice访问同一个ApolloConfigDB数据库。

4、服务器准备

3、分布式部署

5、apollo依赖安装
(1)根据我们规划的环境去逐一安装jdk环境
# jdk版本:1.8.0_211
# 安装略。若需安装请看jdk安装文档
# 分布式中每台服务器都要有JDK环境

(2)根据我们规划的环境去逐一安装mysql环境
# mysql版本:5.7.30
# 安装略。若需安装请看mysql安装文档
# 注意:生产环境下数据密码弄个复杂点,我这只是在本地测试用

# 部署mysql的服务器(总共5台)
          192.168.35.102
          192.168.35.108
          192.168.35.118
          192.168.35.128
          192.168.35.138

# 每台数据库都新增mysql用户,用于apollo连接使用
          mysql -uroot -p’root用户密码’
          create user ‘apollo’@’%’ identified by ‘apollo123’;
          grant all privileges on . to ‘apollo’@’%’ identified by ‘apollo123’;
          flush privileges;

6、创建数据库并导入数据
(1)创建 “ApolloConfigDB”,用于apollo-configserver服务使用库
# 创建数据库并导入ApolloConfigDB.sql文件,服务器环境都有如下,这些服务器都需要执行如下操作
          192.168.35.108
          192.168.35.118
          192.168.35.128
          192.168.35.138

(2)在每套环境中都创建一个ApolloConfigDB数据库
          mysql -uapollo -p’root123’
          CREATE DATABASE ApolloConfigDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

(3)导入ApolloConfigDB.sql文件
# 上传sql文件到/data/opt/scripts/
# 要进入ApolloConfigDB库执行sql文件
          mysql -uapollo -p’root123’
          use ApolloConfigDB;
          source /data/opt/scripts/apolloconfigdb.sql

(4)调整ApolloConfigDB.ServerConfig表的数据
# configservice和adminservice部署在同一台机器,并当前环境只有一个节点时,则可以跳过此步骤
# configservice和adminservice部署不在同一台机器,并当前环境只有一个节点时,需要修改eureka.service.url值为当前环境的apollo-configservice的地址与端口,注意多个地址之间用英文逗号隔开
# 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/

(5)创建 “ApolloPortalDB”,用于apollo-portal服务使用库
# MySQL创建数据库并设置字符集
          mysql -uapollo -p’root123’
          CREATE DATABASE ApolloPortalDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

(6)创建 “ApolloPortalDB”,用于apollo-portal服务使用库
# 上传sql文件到/data/opt/scripts/
# 要进入ApolloPortalDB 库执行sql文件
          mysql -uapollo -p’root123’
          use ApolloPortalDB;
          source /data/opt/scripts//apolloportaldb.sql

(7)调整ApolloPortalDB.ServerConfig表的数据
# portal默认支持的环境是DEV,若需要其它环境,需要修改apollo.portal.envs的值,默认值是DEV,修改为以下值,表示支持DEVFATUATPRO四个环境,注意每个环境值之间用英文逗号隔开
# 注意:只在数据库添加环境是不起作用的,还需要为apollo-portal添加新增环境对应的meta server地址,具体会在部署apollo-portal中配置
DEV,FAT,UAT,PRO

7、部署apollo
# 每套环境都安装两个apollo节点,每个apollo节点包含一个apollo-configservice和apollo-adminservice
# 实际部署中,可自行决定apollo节点的个数
(1)根据自己的环境解压包
# 下载官方编译好的下载如下三个包,版本看所需的环境
# 下载地址:https://github.com/ctripcorp/apollo/releases
# 上传到/data/opt/apollo/目录下
          apollo-build-scripts-master.zip
          apollo-configservice-1.1.1-github.zip
          apollo-portal-1.1.1-github.zip

(2)解压到指定目录
          mkdir /data/opt/apollo/ -p ; cd /data/opt/apollo/
          mkdir apollo-adminservice ; unzip -d /data/opt/apollo/apollo-adminservice apollo-build-scripts-master.zip
          mkdir apollo-configservice ; unzip -d /data/opt/apollo/apollo-configservice apollo-configservice-1.1.1-github.zip
          mkdir apollo-portal ; unzip -d /data/opt/apollo/apollo-portal apollo-portal-1.1.1-github.zip

(3)创建apollo用户并赋予目录用户权限
# 上传sql文件到/data/opt/scripts/
# 要进入ApolloConfigDB库执行sql文件
          useradd apollo
          chown -R apollo:root /data/opt/apollo/

(4)配置apollo-configservice
# 配置数据库连接,填写当前环境的ApolloConfigDB数据库连接串信息
          # 注意127.0.0.1修改成实际环境数据库IP
          # 注意apolloconfigdb数据库(应该是不区分大小写)
          # 注意用户名和密码后面不要有空格
          vim /data/opt/apollo/apollo-configservice/config/application-github.properties
          spring.datasource.url = jdbc:mysql://127.0.0.1:3306/ApolloPortalDBharacterEncoding=utf8
          spring.datasource.username = apollo
          spring.datasource.password = root123

3、分布式部署
# 启动端口
          也可以部署两套apollo-portal,管理各自环境的apollo-portal

(6)配置apollo-portal
# 本次部署中,只部署一个apollo-portal,用来管理所有环境的apollo节点
          默认的启动端口是8090,若要修改,则将scripts/startup.sh中的SERVER_PORT=SERVER_PORT:=8090的8090改成指定的端口即可

# 配置数据库连接,填写当前环境的ApolloConfigDB数据库连接串信息
          # 注意127.0.0.1修改成实际环境数据库IP
          # 注意apolloconfigdb数据库(应该是不区分大小写)
          # 注意用户名和密码后面不要有空格
          vim /data/opt/apollo/apollo-portal/config/application-github.properties
          spring.datasource.url = jdbc:mysql://127.0.0.1:3306/ApolloPortalDBharacterEncoding=utf8
          spring.datasource.username = apollo
          spring.datasource.password = root123

3、分布式部署

(9)更更更更更更详细的配置可以参考apollo官方
# https://github.com/ctripcorp/apollo/wiki

(10)到此完成部署

文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树持续集成和部署(Jenkins)使用helm安装Jenkins8588 人正在系统学习中

来源:吉忠昱

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月28日
下一篇 2022年2月1日

相关推荐