论坛首页 Java企业应用论坛

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

浏览 2363 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2018-08-04  

一、准备工作

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、日志输出目录等

 

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics