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
下载完成后,在第四步物理机部署时源码下载需要重新进行打包,单服务不需要打包。
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
启动成功
apollo门户 : {服务器ip地址}:{portal服务端口8090(SERVER_PORT=8092)}
如: localhost:8092
启动成功
apollo账号密码
账号:apollo
密码:admin