0.Apollo架构说明
本次部署环境为DEV 开发 FAT 测试01 KANGTEST 测试02 UAT 预生产 PROD 生产
上图文字版:
环境 服务器 服务 端口
DEV 192.168.1.169 Apollo-configservice
Apollo-adminservice 8080
8090
FAT 192.168.1.169 Apollo-configservice
Apollo-adminservice 8081
8091
KANGTEST 192.168.1.169 Apollo-configservice
Apollo-adminservice 8082
8092
UAT 192.168.1.169 Apollo-configservice
Apollo-adminservice 8083
8093
Portal01 192.168.1.169 Apollo-portal 10011
Portal02 192.168.1.196 Apollo-portal 8071
PROD 192.168.1.196 Apollo-configservice
Apollo-adminservice 8083
8093
数据库服务器:
上图文字版:
环境 服务器 服务 数据库 端口
DEV 192.168.1.173 Apollo-configservice
Apollo-adminservice Apolloconfigdbdev 3306
FAT 192.168.1.162 Apollo-configservice
Apollo-adminservice Apolloconfigdbtest 3306
KANGTEST 192.168.1.162 Apollo-configservice
Apollo-adminservice Apolloconfigdbkangtest 3306
UAT 192.168.1.29 Apollo-configservice
Apollo-adminservice Apolloconfigdbuat 3306
Portal01 192.168.1.29 Apollo-portal apolloportaldb 3306
Portal02 192.168.1.204 Apollo-portal apolloportaldb 3306
PROD 192.168.1.204 Apollo-configservice
Apollo-adminservice Apolloconfigdb 3306
Github地址: https://github.com/ctripcorp/apollo.git
重要的项目有:
Apollo-configservice: 提供配置获取接口,提供配置更新推送接口,接口服务对象为apollo客户端。
Apollo-adminservice: 提供配置管理接口,提供配置修改,发布等接口,服务对象为Portal,以及Eureka 。
Apollo-portal: 提供web街面公用户管理配置
一.Apollo新部署 【这里以部署prod生产环境为例】
0. 最好部署好2个 eureka01 eureka02 并将现有服务注册到上面
Eureka 地址:http://192.168.1.171:10001/eureka,http://:192.168.1.231:10002/eureka
1.新建数据库并初始化,修改数据库字段
将部署目录中的相关数据的sql脚本执行完成。
2.修改adminservice configservice portal 配置文件
(1):adminservice需要修改配置地址
/opt/apollo-adminservice-1.7.1-github/config/application-github.properties
[root@prod-apollo-001 config]# cat application-github.properties
####### DataSource
spring.datasource.url = jdbc:mysql://192.168.1.204:3306/apolloconfigdb?characterEncoding=utf8 #修改数据库url
spring.datasource.username = username #修改账号密码
spring.datasource.password = password
/opt/apollo-adminservice-1.7.1-github/scripts/startup.sh
#!/bin/bash
SERVICE_NAME=apollo-adminservice
####### Adjust log dir if necessary
LOG_DIR=/opt/logs #修改日志路径
####### Adjust server port if necessary
SERVER_PORT=${SERVER_PORT:=8093} #修改端口号
(2):configservice需要修改配置地址
/opt/apollo-configservice-1.7.1-github/config/application-github.properties
[root@prod-apollo-001 config]# cat application-github.properties
spring.datasource.url = jdbc:mysql://192.168.1.204:3306/apolloconfigdb?characterEncoding=utf8 #修改数据库url
spring.datasource.username = username #修改账号密码
spring.datasource.password = password
/opt/apollo-configservice-1.7.1-github/scripts/start.sh
[root@prod-apollo-001 scripts]# cat startup.sh
#!/bin/bash
SERVICE_NAME=apollo-configservice
####### Adjust log dir if necessary
LOG_DIR=/opt/logs
####### Adjust server port if necessary
SERVER_PORT=${SERVER_PORT:=8083}
(3):portal 需要修改配置地址
/opt/apollo-portal-1.7.1-github/config/application-github.properties
spring.datasource.url = jdbc:mysql://192.168.1.204:3306/apolloconfigdb?characterEncoding=utf8 #修改数据库url
spring.datasource.username = username #修改账号密码
spring.datasource.password = password
/opt/apollo-portal-1.7.1-github/config/apollo-env.properties
prod.meta=http://192.168.1.171:10001,http://:192.168.1.231:10002 #填写eureka地址
/opt/apollo-portal-1.7.1-github/scripts/start.sh
[root@prod-apollo-001 scripts]# cat startup.sh
#!/bin/bash
SERVICE_NAME=apollo-portal
####Adjust log dir if necessary
LOG_DIR=/opt/logs
####Adjust server port if necessary
SERVER_PORT=${SERVER_PORT:=8071}
修改完上述配置后,依次启动adminservice configservice portal 的start.sh脚本即可。
3.修改数据库配置
Apolloconfigdb库—>serviceconfig表----->eureka.service.url字段填上eureka地址。
Apolloportaldb库—>serviceconfig表----->apollo.portal.envs字段填上环境名称,如果多个请用逗号分隔。
Apolloportaldb库—>serviceconfig表----->apollo.portal.meta.servers字段填上eureka地址:{“PROD”:“http://192.168.1.171:10001,http://:192.168.1.231:10002”}
Apolloportaldb库—>serviceconfig表----->configView.memberOnly.envs字段填上环境名称,如果多个请用逗号分隔。
4.重启adminservice configservice portal 服务
修改上述配置文件和数据库后,再重启上述3个服务即可。
5.检查apollo系统环境是否良好
访问生产portal地址:http://192.168.1.196:8071/
二.Apollo 新增环境 【这里以新增KANGTEST环境为例】
注意: kangtesg环境也需要eureka 需要是2个
1.新建数据库apolloconfigdb并初始化,修改数据库字段
2.修改adminservice configservice
(1):adminservice需要修改配置地址
/opt/apollo-adminservice-1.7.1-github/config/application-github.properties
[root@prod-apollo-001 config]# cat application-github.properties
####DataSource
spring.datasource.url = jdbc:mysql://192.168.1.xxx:3306/apolloconfigdb?characterEncoding=utf8 #修改数据库url
spring.datasource.username = username #修改账号密码
spring.datasource.password = password
/opt/apollo-adminservice-1.7.1-github/scripts/startup.sh
#!/bin/bash
SERVICE_NAME=apollo-adminservice
####Adjust log dir if necessary
LOG_DIR=/opt/logs #修改日志路径
####Adjust server port if necessary
SERVER_PORT=${SERVER_PORT:=8092} #修改端口号
(2):configservice需要修改配置地址
/opt/apollo-configservice-1.7.1-github/config/application-github.properties
[root@prod-apollo-001 config]# cat application-github.properties
spring.datasource.url = jdbc:mysql://192.168.1.xxx:3306/apolloconfigdb?characterEncoding=utf8 #修改数据库url
spring.datasource.username = username #修改账号密码
spring.datasource.password = password
/opt/apollo-configservice-1.7.1-github/scripts/start.sh
[root@prod-apollo-001 scripts]# cat startup.sh
#!/bin/bash
SERVICE_NAME=apollo-configservice
#####Adjust log dir if necessary
LOG_DIR=/opt/logs
####Adjust server port if necessary
SERVER_PORT=${SERVER_PORT:=8082}
3.修改Portal 数据库及配置文件
###如果除了生产,其他环境可以共用一个portal 就只修改那个portal数据库即可。
Apolloconfigdb库—>serviceconfig表----->eureka.service.url字段填上kangtest环境的eureka地址。
Apolloportaldb库—>serviceconfig表----->apollo.portal.envs字段填上环境名称,如果多个请用逗号分隔。
Apolloportaldb库—>serviceconfig表----->apollo.portal.meta.servers字段填上新增kaangtest的eureka地址:{“KANGTEST”:“http://192.168.1.17:10001,http://:192.168.1.17:10002”}
Apolloportaldb库—>serviceconfig表----->configView.memberOnly.envs字段填上环境名称,如果多个请用逗号分隔。Key=configView.memberOnly.envs value=dev,fat,kangtest,uat
###如果修改数据库后不生效,可以把portal的配置文件也一起修改:
/opt/apollo-portal-1.7.1-github/config/apollo-env.properties
#add kangtest环境eureka地址。
kangtest.meta=http://192.168.1.17:10001,http://:192.168.1.17:10002 #填写eureka地址
4.重启adminservice configservice portal即可检查
三.升级Apollo 2.5到8.4版本
将原来的老的configservice adminservice 各个环境使用的apolloconfigdb 和apolloportaldb 全量备份。
将上述改好的配置,上传各个环境服务器后,启动就行了。
微服务启动使用Apollo参数:
-Denv=uat -Dapollo.meta=http://192.168.1.251:10001,http://192.168.1.251:10002
#uat 为对应环境参数
#http://192.168.1.251:10001,http://192.168.1.251:10002 为eureka 对应uat环境的地址和端口号
有Apollo部署及使用问题,欢迎交流,感谢阅读。