Apollo配置中心集成

运行环境

由于Apollo本身根据SpringBoot和SpringCloud开发的,脚本文件支持windows系统、Linux系统,建议CentOS 7。且本身依赖很少,只依赖数据库mysql。
运行环境如下:

  • JDK环境,1.8以上,最新版服务最低1.8,客户端1.7.
  • MYSQL版本:5.6以上
  • 分布式部署环境
  • DEV:开发环境
  • FAT:测试环境,相当于alpha环境(功能测试)
  • UAT:集成环境,相当于beta环境(回归测试)
  • PRO:生产环境

apollo服务端部署

1.Apollo下载
我们需要对apollo服务端进行部署,首先需要将其下载下来,根据选择不同可以分为两种方式下载,一是项目源码下载,二是单服务下载

  • 项目源码下载

  • 是将带有其他部分的项目代码一起下载下来,完整的一个项目,包含了其他的一些内容,项目集成了apollo,源码下载地址:https://github.com/ctripcorp/apollo

  • 单服务下载

  • 由于我们只需要用到apollo的三个服务,我们可以采用只对服务进行下载,单纯的只有apollo所需功能的服务压缩包,服务(adminService、configService、portal)下载地址:https://github.com/ctripcorp/apollo/releases
    java——Apollo配置中心之二——apollo服务端部署

下载完成后,在第四步物理机部署时源码下载需要重新进行打包,单服务不需要打包。

2.准备MYSQL数据库
服务端需要两个数据库,分别为ApolloPortalDB和ApolloConfigDB,因此我们需要先创建两个数据库。

需要注意的是ApolloPortalDB只需要在生产环境部署一个即可,而ApolloConfigDB需要在每个环境部署一套,如fat、uat和pro分别部署3套ApolloConfigDB。官方有提供apolloportaldb.sql脚本和apolloconfigdb.sql脚本,直接从MYSQL客户端导入即可。

3.调整服务端配置

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

    • apollo.portal.envs - 可支持的环境列表(ServerConfig表),默认值是DEV,如果portal需要管理多个环境的话,以逗号分隔即可(大小写不敏感)如:DEV,FAT,UAT,PRO

    • apollo.portal.meta.servers - 各环境Meta Service列表(ServerConfig表)Apollo Portal需要在不同的环境访问不同的meta service(apollo-configservice)地址,所以我们需要在配置中提供这些信息。默认情况下,meta service和config service是部署在同一个JVM进程,所以meta service的地址就是config 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”
      }

信息更改后需要服务进行重启才会生效,除了上诉常用的之外,还有对管理员权限做处理、对单位部门做处理的。具体学习请参考分布式部署指南——调整服务端配置:https://github.com/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97#213-%E8%B0%83%E6%95%B4%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%85%8D%E7%BD%AE

  • 调整ApolloConfigDB配置
    配置项统一存储在ApolloConfigDB.ServerConfig表中,需要注意每个环境的ApolloConfigDB.ServerConfig都需要单独配置,修改完一分钟实时生效。

  • eureka.service.url - Eureka服务Url(ServerConfig表)不管是apollo-configservice还是apollo-adminservice都需要向eureka服务注册,所以需要配置eureka服务地址。 按照目前的实现,apollo-configservice本身就是一个eureka服务,所以只需要填入apollo-configservice的地址即可,如有多个,用逗号分隔(注意不要忘了/eureka/后缀)
    如:http://1.1.1.1:8080/eureka/,http://2.2.2.2:8080/eureka/

  • namespace.lock.switch(ServerConfig表)一次发布只能有一个人修改开关,用于发布审核

  • admin-service.access.control.enabled(ServerConfig表)配置apollo-adminservice是否开启访问控制

  • admin-service.access.tokens(ServerConfig表)配置允许访问apollo-adminservice的access token列表

4.物理机部署

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?useSSL=false&characterEncoding=utf8
    spring.datasource.username = someuser
    spring.datasource.password = somepwd

  • 用程序员专用编辑器(如vim,notepad++,sublime等)打开scripts目录下的startup.sh文件更改端口号,如:
    SERVER_PORT=8090

  • 配置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?useSSL=false&characterEncoding=utf8
    spring.datasource.username = someuser
    spring.datasource.password = somepwd

  • 用程序员专用编辑器(如vim,notepad++,sublime等)打开scripts目录下的startup.sh文件更改端口号,如:
    SERVER_PORT=8091

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

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

  • 使用程序员专用编辑器(如vim,notepad++,sublime等)打开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

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

  • 填写正确的ApolloPortalDB数据库连接串信息,注意用户名和密码后面不要有空格!如下:
    spring.datasource.url =jdbc:mysql://localhost:3306/ApolloPortalDB?useSSL=false&characterEncoding=utf8
    spring.datasource.username = someuser
    spring.datasource.password = somepwd

  • 用程序员专用编辑器(如vim,notepad++,sublime等)打开scripts目录下的startup.sh文件更改端口号,如:
    SERVER_PORT=8092

以上便将apollo服务端部署完毕了,接着便是启动apollo服务端

apollo服务启动顺序

1.configservice

  • 打开configservice目录下的scripts文件夹,双击startup.sh文件启动
  • 命令行窗口启动命令 ./startup.sh

2.adminservice

  • 打开adminservice目录下的scripts文件夹,双击startup.sh文件启动
  • 命令行窗口启动命令 ./startup.sh

3.portal

  • 打开portal目录下的scripts文件夹,双击startup.sh文件启动
  • 命令行窗口启动命令 ./startup.sh

查看服务是否成功启动

eurake服务 : {服务器ip地址}:{configservice服务端口8090(SERVER_PORT=8090)}
如 localhost:8090
java——Apollo配置中心之二——apollo服务端部署

启动成功

apollo门户 : {服务器ip地址}:{portal服务端口8090(SERVER_PORT=8092)}
如: localhost:8092
java——Apollo配置中心之二——apollo服务端部署

启动成功

apollo账号密码
账号:apollo
密码:admin

相关文章: