基本知识及概念可参考Apolle 基础篇

必要条件

  • os:centOS7
  • jdk:1.8+
  • mysql: 5.6.5+

安装部署

官方部署策略例子

我的样例部署图

部署步骤

创建数据库

Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB,数据库、表的创建和样例数据都分别准备了sql文件(官方git获取),只需要导入数据库即可。需要注意的是ApolloPortalDB只需要在环境部署一个即可,而ApolloConfigDB需要在每个环境部署一套,如fat、uat和pro分别部署3套ApolloConfigDB

ApolloPortalDB必要配置说明

  配置项统一存储在ApolloPortalDB.ServerConfig表中,也可以通过[管理员工具] – [系统参数]页面进行配置,无特殊说明则修改完一分钟实时生效

Key

描述

value

备注

apollo.portal.envs

可支持的环境列表

DEV,FAT,UAT,PRO

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

apollo.portal.meta.servers

各环境Meta Service列表

{"DEV":"http://1.1.1.1:8080",

"FAT":"http://apollo.fat.xxx.com",

"UAT":"http://apollo.uat.xxx.com",

 "PRO":"http://apollo.xxx.com"}

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

organizations

部门列表

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

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

prefix.path

设置Portal挂载到nginx/slb后的相对路径

/apollo

如果希望在Portal前挂软负载,一般情况下建议直接使用根目录来挂载,不过如果有些情况希望和其它应用共用nginx/slb,需要加上相对路径,那么可以配置此项

ApolloConfigDB必要配置说明

Key

描述

value

备注

eureka.service.url

Eureka服务Url

http://1.1.1.1:8080/eureka/,

http://2.2.2.2:8080/eureka/

每个环境只填入自己环境的eureka服务地址,如有多个,用逗号分隔

namespace.lock.switch

发布审核开关

Boolean值

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

config-service.cache.enabled

是否开启配置缓存

默认为false

配置为true的话,config service会缓存加载过的配置信息,从而加快后续配置获取性能,开启前请先评估总配置大小并调整config service内存配置

关于eureka.service.url需要注意以下几点

  • 这里需要填写本环境中全部的eureka服务地址,因为eureka需要互相复制注册信息
  • 如果希望将Config Service和Admin Service注册到公司统一的Eureka,请查看
  • 在多机房部署时,往往希望config service和admin service只向同机房的eureka注册,要实现这个效果,需要利用ServerConfig表中的cluster字段,config service和admin service会读取所在机器的/opt/settings/server.properties(Mac/Linux)或C:\opt\settings\server.properties(Windows)中的idc属性,如果该idc有对应的eureka.service.url配置,那么就只会向该机房的eureka注册。比如config service和admin service会部署到SHAOY和SHAJQ两个IDC,那么为了实现这两个机房中的服务只向该机房注册,那么可以在ServerConfig表中新增两条记录,分别填入SHAOY和SHAJQ两个机房的eureka地址即可,default cluster的记录可以保留,如果有config service和admin service不是部署在SHAOY和SHAJQ这两个机房的,就会使用这条默认配置。

 

获取安装包

1.直接下载安装包(没有定制需求)

        从https://github.com/ctripcorp/apollo/releases下载预先打好的安装包;

2.通过源码构建(需要定制开发)

        从https://github.com/ctripcorp/apollo/releases下载Source code包或直接clone源码后在本地构建

apollo部署

这里是采用了直接下载安装包的方式;

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

下载最新版本的apollo-configservice-x.x.x-github.zip、apollo-adminservice-x.x.x-github.zip和apollo-portal-x.x.x-github.zip即可

配置数据库连接信息

Apollo服务端需要知道如何连接到你前面创建的数据库,数据库连接串信息位于上一步下载的压缩包中的config/application-github.properties中, 由于ApolloConfigDB在每个环境都有部署,所以对不同的环境config-service、admin-service需要配置对应环境的数据库参数

部署apollo-configservice

将对应环境的apollo-configservice-x.x.x-github.zip上传到服务器上,解压后执行scripts/startup.sh即可。如需停止服务,执行scripts/shutdown.sh。

  • 如果需要修改JVM参数,可以修改scripts/startup.sh的JAVA_OPTS部分。
  • 如要调整服务的日志输出路径,可以修改scripts/startup.sh和apollo-configservice.conf中的LOG_DIR。
  • 如要调整服务的监听端口,可以修改scripts/startup.sh中的SERVER_PORT。另外apollo-configservice同时承担meta server职责,如果要修改端口,注意要同时ApolloConfigDB.ServerConfig表中的eureka.service.url配置项以及apollo-portal和apollo-client中的使用到的meta server信息

部署apollo-adminservice

将对应环境的apollo-adminservice-x.x.x-github.zip上传到服务器上,解压后执行scripts/startup.sh即可。如需停止服务,执行scripts/shutdown.sh。

  • 如果需要修改JVM参数,可以修改scripts/startup.sh的JAVA_OPTS部分。
  • 如要调整服务的日志输出路径,可以修改scripts/startup.sh和apollo-adminservice.conf中的LOG_DIR。
  • 如要调整服务的监听端口,可以修改scripts/startup.sh中的SERVER_PORT。

部署apollo-portal

将apollo-portal-x.x.x-github.zip上传到服务器上,解压后执行scripts/startup.sh即可。如需停止服务,执行scripts/shutdown.sh.

  • 如果需要修改JVM参数,可以修改scripts/startup.sh的JAVA_OPTS部分。
  • 如要调整服务的日志输出路径,可以修改scripts/startup.sh和apollo-adminservice.conf中的LOG_DIR。
  • 如要调整服务的监听端口,可以修改scripts/startup.sh中的SERVER_PORT。

java 客户端中的使用请查看Apolle 客户端使用

Logo

为开发者提供自动驾驶技术分享交流、实践成长、工具资源等,帮助开发者快速掌握自动驾驶技术。

更多推荐