Spring Cloud 系列之 Apollo 配置中心(一)
Spring Cloud 系列之 Apollo 配置中心(二)
本篇文章讲解 Apollo 多环境部署方案,教大家搭建除了 DEV 的其他环境。
多环境部署方案点击链接观看:Apollo 多环境部署说明视频(获取更多请关注公众号「哈喽沃德先生」)
为了让大家有更真实的感受,多环境部署方案我们在 Linux 环境下搭建,不再使用 Quick Start 脚本。
当项目要上线部署到生产环境时,项目的配置比如数据库、缓存、队列等服务器的地址都会发生改变,这时候就需要通过 Apollo 为生产环境添加配置。目前 Apollo 预先定义的环境为:
「DEV」:Development environment 开发环境,用于开发者调试使用;
「FAT」:Feature Acceptance Test environment 功能验收测试环境,用于软件测试者测试使用;
「UAT」:User Acceptance Test environment 用户验收测试环境(仿真环境),用于生产环境下的软件测试者测试使用
「PRO」:Production environment 生产环境,最终上线环境。
Apollo 也支持自定义环境。具体方式可以参考官方文档:
这里我们要明确一些信息:
Portal 部署在生产环境的机房,通过它来直接管理 FAT、UAT、PRO 等环境的配置即可;
Config Service、Admin Service 和 ApolloConfigDB 在每个环境都单独部署;
应用需要配置指定的环境,默认为 DEV。
总结下来就是:一套 Portal 可以管理多个环境,但是每个环境都需要独立部署一套 Config Service、Admin Service 和 ApolloConfigDB。
服务器地址说明:
192.168.10.101:apollo-portal,公共的 Portal
192.168.10.102:DEV 环境,独立部署一套 Config Service、Admin Service,使用公共的 Portal
192.168.10.103:PRO 环境,独立部署一套 Config Service、Admin Service,使用公共的 Portal
创建数据库点击链接观看:Apollo 多环境部署实践视频(获取更多请关注公众号「哈喽沃德先生」)
192.168.10.101 这台机器运行 apolloportaldb.sql 文件。
192.168.10.102 和 192.168.10.103 都运行 apolloconfigdb.sql 文件。
最终结果如下:
调整服务端配置Apollo 自身的一些配置是放在数据库里面的,所以需要针对实际情况做一些调整。
配置项统一存储在 ApolloPortalDB.ServerConfig 表中,如下图,在③Value的地方添加环境即可,比如 dev,pro。
或者也可以通过管理员工具 - 系统参数页面进行配置,通过 apollo.portal.envs 关键字查询并进行设置,无特殊说明则修改完一分钟实时生效。
下载安装包从GitHub Release页面下载最新版本的apollo-configservice-x.x.x-github.zip、apollo-adminservice-x.x.x-github.zip和apollo-portal-x.x.x-github.zip即可。本小节采用这种方式,可以省去本地打包的过程。
如果需要对 Apollo 做定制开发,也可以选择通过源码构建: 后面高可用环境的搭建我们就采用这种方式。
配置数据库Apollo 服务端需要知道如何连接到你前面创建的数据库,数据库连接串信息位于上一步下载的压缩包中的config/application-github.properties中。
配置 apollo-configservice 的数据库连接信息将 apollo-configservice-x.x.x-github.zip 上传至 192.168.10.102 和 192.168.10.103
解压apollo-configservice-x.x.x-github.zip
打开config目录下的application-github.properties文件
填写正确的 ApolloConfigDB 数据库连接串信息,注意用户名和密码后面不要有空格!
修改完的效果如下:
# DataSource spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8 spring.datasource.username = root spring.datasource.password = 1234 配置 apollo-adminservice 的数据库连接信息将 apollo-adminservice-x.x.x-github.zip 上传至 192.168.10.102 和 192.168.10.103
解压apollo-adminservice-x.x.x-github.zip
打开config目录下的application-github.properties文件
填写正确的 ApolloConfigDB 数据库连接串信息,注意用户名和密码后面不要有空格!