`
拓子轩
  • 浏览: 210663 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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

    博客分类:
  • java
阅读更多

一、准备工作

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

 

分享到:
评论

相关推荐

    python3 中django项目访问apollo

    django项目访问apollo,增加了配置加密后自动解密功能 当环境设置为local,默认取本地配置,配置文件默认在~/data/...apollo配置中心拉取配置 支持回调接口 secret认证 支持灰度发布 支持本地文件缓存 只支持python3.x

    APPLLO阿波罗总部办公楼施工图附实景

    施工图通常由建筑师和工程师合作完成,其中包括平面图、立面图、剖面图、详图等,这些图纸提供了建筑物的尺寸、材料、构造细节和安装指南。平面图展示了楼层布局,包括办公区域、会议室、休息区等功能空间的位置;...

    apollo安装配置文档

    apollo安装配置文档

    hacker-news-appllo:黑客新闻克隆以测试graphql appllo

    您的应用已准备好进行部署! 有关更多信息,请参见有关的部分。npm run eject 注意:这是单向操作。 eject ,您将无法返回! 如果您对构建工具和配置选择不满意,则可以随时eject 。 此命令将从项目中删除单个构建...

    Arduino-Arduino_Apollo3,Arduino Core支持Ambiq Micro的Apollo3微控制器.zip

    Arduino-Arduino_Apollo3.zip,Arduino Core支持Ambiq Micro的Apollo3微控制器阿波罗3微控制器的Arduino核心,Arduino是一家开源软硬件公司和制造商社区。

    SpringCloud项目测试开发环境部署文档

    介绍如何通过docker,nginx,erueka,appllo 搭建基于springboot的SpringCloud架构操作步骤。帮助你开始部署测试环境和开发环境的springboot项目环境。

    百度无人驾驶apollo2.0源码

    Apollo是由百度公司开发的一个开放平台,专为自动驾驶系统设计,旨在提供一套完整、安全、可靠的解决方案。Apollo2.0是该平台的一个重要版本,相较于早期的1.5版,它在功能、性能和易用性上都有显著提升。...

    开发者说 _ Apollo代码学习—MPC与LQR比较.pdf

    自动驾驶控制器比较 - MPC 与 LQR 自动驾驶技术中,控制器的选择和设计是非常重要的。Apollo 代码学习中,MPC(模型预测控制)和 LQR(线性二次调解器)是两种常用的控制器。本文将对 MPC 和 LQR 进行比较,讨论...

    Apollo-开源

    Mac OS X上最先进的电子邮件客户端! 通过Apollo,您可以设置漫游器以在外出时回复电子邮件,可以使用Assistants来帮助执行日常任务,还可以使用AppleScript来设置您自己或其他人无尽的插件。 而且阿波罗是完全免费...

    apollo-cache-instorage:Apollo Cache实施,有助于本地存储资源

    阿波罗InStorageCache apollo-cache-instorage的一个扩展apollo-cache-inmemory允许资源的粒状高速缓存能力,在存储的选择。目的Apollo Client的持久层最著名的实现是apollo-cache-persist 。 该项目的主要警告是...

    app-express-graphql:使用Express和graphql构建应用程序

    库应用程序-GraphQL,带有appllo-client的ReactJs,Node&Express。依存关系Node: ^10.13.0npm: 6.4.1nodemon(optional) - used to run application安装nodemon npm install -g nodemon-保存服务器配套npm安装"cors...

    angular-starter-template

    Bootstrap 4:响应式布局角度材质:UI组件Apollo客户端(Appllo Angular):GraphQL客户端库正在更新... 特征 使用GraphQL作为后端。 包括身份验证,查询和CRUD数据(进行中) Hackernews克隆(正在进行中) 集成ngx...

Global site tag (gtag.js) - Google Analytics