本文记录个人开发经历仅供参考
最近公司要求使用Apollo配置中心,本人对其进行研究总结。
Apollo简介
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。
Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。
.Net客户端不依赖任何框架,能够运行于所有.Net运行时环境。
Apollo部署
官方推荐有两种部署方案,Quick Start 分布式部署;
初学者 建议使用Quick Start部署方案,简单快捷,但是不适合实际公司开发需要,功能上也有所欠缺 。
公司使用的话建议使用分布式部署方案,这里也着重介绍分布式部署方案。
1、首先下载源码
github:https://github.com/ctripcorp/apollo
附图:
2、导入数据库
进入源码的scripts目录找到sql目录
将 apolloconfigdb.sql apolloportaldb.sql 导入MySQL
附图:
这里解释一下两个数据库的区别:
portaldb 和 configdb 看其相似,但其实有很大不同。
apolloportaldb: portal是门户网站的意思,显而易见 portal 主要是向方便用户管理的后台提供持久层数据及配置。
可根据不同需求修改配置信息
附图:
这里说一下环境列表:可通过英文逗号隔开添加不同环境。
Apollo目前支持以下环境:
- DEV
- 开发环境
- FAT
- 测试环境,相当于alpha环境(功能测试)
- UAT
- 集成环境,相当于beta环境(回归测试)
- PRO
- 生产环境
apolloconfigdb:则是对我们所添加应用的配置进行存取,大白话来说就是存咱们项目的配置信息的。上面提到Apollo可以支持多环境,这里也说明一下:一个configdb只提供一个环境的配置存取。
可根据不同需求修改配置信息
附图:
3、打包
官方有提供打包脚本,可进入scripts 找到build.bat build.sh 两者区别不用多说大家一定明白。这里使用sh脚本。
附图:
不同包的不同作用:
多环境部署:
配置文件图:
打包后会生成 三个包去不同目录的target里找
进入target找到zip文件(这里说明是zip文件不是jar文件),找到后新建文件目录,解压。
例图:
解压:
解压后,进入scripts目录
两个脚本一个启动一个停止。
点击编辑
注意默认portalServer的端口会与configServer的端口重复,如果是在一台机器启动,建议将port的端口改为8070或其他。如果port跟config不在一台机器启动请无视上句话。
修改后运行startup.sh脚本启动即可,停止则运行shutdown.sh脚本。
运行后访问ip+port设置的端口号即可访问。
此机器的环境配置需在 windows C:\opt\settings\server.properties Linux /opt/settings/server.properties 里指定
说明:portalServer=后台 configServer+adminServer=一个环境
后续会继续进行补充。