一、产生背景
当项目中不同环境的配置一般不同,每次发版本之前都要对每个应用进行修改,不能统一的管理,并且不能实时的更新(需要重启服务器)。
目前常用的分布式配置中心框架有:Disconf(依赖于zookeeper实现)、zookeeper、Apollo、redis、xxl-conf、diamond等。
二、Apollo简介
是携程框架部门研发,能够集中化管理应用不同环境、不同集群的配置,能将最新修改后的记录推送至应用端,并且具备规范的权限、流程治理。所有的配置发布有版本的概念,可方便对配置进行回滚。对所有配置的管理分成编辑和发布两个步骤减少人为错误,所有操作具备审计日志。还提供了开放平台API。
其中包含灰度发布功能:可以只对部分应用实例生效,等运行一段时间没有问题后再推送给所有的实例。
三、实现原理
1、Apollo应用端(用于springboot连接) 对应配置文件的http接口平台(Config Service服务)连接同一个共享数据库。
2、Apollo门户平台(用户操作界面)对应Admin Service服务接口连接同一个共享数据库。
3、当用户通过门户网站创建配置文件或修改文件(监测到配置文件信息发生改变)直接推送给Apollo的应用端(底层通过netty技术进行监听),若发生改变应用端从Apollo服务器读取最新的配置文件信息。
四、搭建步骤
1.下载:https://github.com/nobodyiam/apollo-build-scripts
建议内存至少1G。
运行apollo-build-scripts-master中的sql文件,创建表结构
执行完毕后:
apolloportaldb:存放门户网站相关信息.
apolloconfigdb:存放配置文件相关信息
修改apollo-build-scripts-master中demo.sh里面数据库连接信息
启动:./demo.sh start
访问:http://localhost:8070
注意:启动时会在本地开启3个服务分别占用8070,8080,8090,也可以自行修改
默认用户名:apollo 密码: admin 登录后可自行修改
第一次启动有点小慢
五、与springboot2.x整合
今晚太晚了,明晚更新(目前时间2019-04-01)
原文:https://www.cnblogs.com/0ziyu0/p/10639848.html