欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

appllo配置中心分布式部署指南

程序员文章站 2022-03-02 17:05:01
...

一、准备工作

1.Java

  Apollo服务端:1.8+

  Apollo客户端:1.7+

 

2.MySQL

  版本要求:5.6.5+

  查看版本命令:SHOW VARIABLES WHERE Variable_name = 'version';

 

3.环境

  Apollo目前支持以下环境:DEV(开发环境)、FAT(测试环境)、UAT(验收环境)、PRO(生产环境)

 

  部署策略示例:

  Portal部署在生产环境的机房,通过它来直接管理FAT、UAT、PRO等环境的配置

  Meta Server、Config Service和Admin Service在每个环境都单独部署,使用独立的数据库

  Meta Server、Config Service和Admin Service在生产环境部署在两个机房,实现双活

  Meta Server和Config Service部署在同一个JVM进程内,Admin Service部署在同一台服务器的另一个JVM进程内

 

二、部署步骤

1.创建数据库

1.1 创建ApolloPortalDB

    导入apolloportaldb.sql后,执行以下语句进行验证:

      select `Id`, `Key`, `Value`, `Comment` from `ApolloPortalDB`.`ServerConfig` limit 1;

    注:ApolloPortalDB只需要在生产环境部署一个即可

 

1.2 创建ApolloConfigDB

    导入apolloconfigdb.sql后,执行以下语句进行验证:

      select `Id`, `Key`, `Value`, `Comment` from `ApolloConfigDB`.`ServerConfig` limit 1;

    注:ApolloConfigDB需要在每个环境部署一套,如fat、uat和pro分别部署3套ApolloConfigDB

 

1.3 调整服务端配置

1.3.1 调整ApolloPortalDB配置

      配置项统一存储在ApolloPortalDB.ServerConfig表中。

 

apollo.portal.envs - 可支持的环境列表    

  默认值是dev,如果portal需要管理多个环境的话,以逗号分隔即可(大小写不敏感),如:DEV,FAT,UAT,PRO

 

organizations - 部门列表

  Portal中新建的App都需要选择部门,所以需要在这里配置可选的部门信息,样例如下:

  [{"orgId":"TEST1","orgName":"样例部门1"},{"orgId":"TEST2","orgName":"样例部门2"}]

 

superAdmin - Portal超级管理员

  超级管理员拥有所有权限,需要谨慎设置。

 

  如果没有接入自己公司的SSO系统的话,可以先暂时使用默认值apollo(默认用户)。

  等接入后,修改为实际使用的账号,多个账号以英文逗号分隔(,)。

 

consumer.token.salt - consumer token salt

  如果会使用开放平台API的话,可以设置一个token salt。如果不使用,可以忽略。

 

wiki.address

  portal上“帮助”链接的地址,默认是Apollo github的wiki首页,可自行设置。

 

admin.createPrivateNamespace.switch

   是否允许项目管理员创建private namespace。设置为true允许创建,设置为false则项目管理员在页面上看不到创建private namespace的选项。

 

1.3.2 调整ApolloConfigDB配置

  配置项统一存储在ApolloConfigDB.ServerConfig表中,需要注意每个环境的ApolloConfigDB.ServerConfig都需要单独配置。

 

eureka.service.url - Eureka服务Url

  不管是apollo-configservice还是apollo-adminservice都需要向eureka服务注册,所以需要配置eureka服务地址。

  如有多个,用逗号分隔(注意不要忘了/eureka/后缀)。

  需要注意的是每个环境只填入自己环境的eureka服务地址.

 

namespace.lock.switch - 一次发布只能有一个人修改开关,用于发布审核

  这是一个功能开关,如果配置为true的话,那么一次配置发布只能是一个人修改,另一个发布。

 

config-service.cache.enabled - 是否开启配置缓存

  这是一个功能开关,如果配置为true的话,config service会缓存加载过的配置信息,从而加快后续配置获取性能。

  默认为false,开启前请先评估总配置大小并调整config service内存配置。

 

2.获取安装包

 

2.1 直接下载安装包

2.1.1 获取apollo-configservice、apollo-adminservice、apollo-portal安装包

  从GitHub Release页面下载最新版本的apollo-configservice-x.x.x-github.zip、apollo-adminservice-x.x.x-github.zip

和apollo-portal-x.x.x-github.zip即可。

 

2.1.2 配置数据库连接信息

2.1.2.1 配置apollo-configservice的数据库连接信息

 

  解压apollo-configservice-x.x.x-github.zip

  用程序员专用编辑器(如vim,notepad++,sublime等)打开config目录下的application-github.properties文件

  填写正确的ApolloConfigDB数据库连接串信息,注意用户名和密码后面不要有空格!

  修改完的效果如下:

    spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8

    spring.datasource.username = someuser

    spring.datasource.password = somepwd

 

  注:由于ApolloConfigDB在每个环境都有部署,所以对不同的环境config-service需要配置对应环境的数据库参数

 

2.1.2.2 配置apollo-adminservice的数据库连接信息

  解压apollo-adminservice-x.x.x-github.zip

  用程序员专用编辑器(如vim,notepad++,sublime等)打开config目录下的application-github.properties文件

  填写正确的ApolloConfigDB数据库连接串信息,注意用户名和密码后面不要有空格!

  修改完的效果如下:

    spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8

    spring.datasource.username = someuser

    spring.datasource.password = somepwd

 

  注:由于ApolloConfigDB在每个环境都有部署,所以对不同的环境admin-service需要配置对应环境的数据库参数

 

2.1.2.3 配置apollo-portal的数据库连接信息

  解压apollo-portal-x.x.x-github.zip

  用程序员专用编辑器(如vim,notepad++,sublime等)打开config目录下的application-github.properties文件

  填写正确的ApolloPortalDB数据库连接串信息,注意用户名和密码后面不要有空格!

  修改完的效果如下:

    spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8

    spring.datasource.username = someuser

    spring.datasource.password = somepwd

 

2.1.2.4 配置apollo-portal的meta service信息

  Apollo Portal需要在不同的环境访问不同的meta service(apollo-configservice)地址,所以我们需要在配置中提供这些信息。

  打开apollo-portal-x.x.x-github.zip中config目录下的apollo-env.properties文件进行配置,如:

    dev.meta=http://1.1.1.1:8080

    fat.meta=http://apollo.fat.xxx.com

    uat.meta=http://apollo.uat.xxx.com

    pro.meta=http://apollo.xxx.com

 

2.1.3 获取apollo-client相关jar包(略)

  

2.2 通过源码构建(略)

 

2.3 部署Apollo服务端

2.3.1 部署apollo-configservice

      启动服务:scripts/startup.sh

      停止服务:scripts/shutdown.sh

      注:根据情况可修改startup.sh文件中的端口号、JAVA_OPTS、日志输出目录等

 

2.3.2 部署apollo-adminservice

      启动服务:scripts/startup.sh

      停止服务:scripts/shutdown.sh

      注:根据情况可修改startup.sh文件中的端口号、JAVA_OPTS、日志输出目录等

 

2.3.3 部署apollo-portal

      启动服务:scripts/startup.sh

      停止服务:scripts/shutdown.sh

      注:根据情况可修改startup.sh文件中的端口号、JAVA_OPTS、日志输出目录等