在实际项目中,我们经常需要对一个新功能做切流验证。在不停机不重启的前提下,对系统内的值进行更新,从而达到动态的配置和更新。这里就涉及到一个统一的配置中心系统,经过前期调研,我们对比了Apollo和Nacos,并最终选择了Apollo系统。
一、基本信息
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
Apollo具备了配置中心常用的所有功能:
- 统一管理不同环境、不同集群的配置
- 配置修改实时生效(热发布)
- 版本发布管理
- 灰度发布
- 权限管理、发布审核、操作审计
- 客户端配置信息监控
- 提供Java和.Net原生客户端
- 提供开放平台API
- 部署简单
前8条都是非常实用的功能点,第9个老实说部署还是有点挑战和成本的,后面会再讲。
二、基本架构
为了支撑以上功能,Apollo拆分成了几大模块:
1、ConfigService
核心的配置中心模块,提供数据推送、拉取
2、AdminService
提供用户端的配置修改、管理等,相对于用户界面的后台
3、Client
提供业务系统的接入jar
4、Portal
为程序员提供管理前端页面
四、对比
在选型之初,我们还考虑了阿里出品的Nacos,它除了配置中心外,还包含更多的功能:服务注册、服务发现等。它的优点是部署相对简单,没有多个不同角色分开部署,同时还提供了docker支持,部署成本大大降低。
但鉴于Nacos开源时间有限,遗留issue数量较多的问题,显而易见稳定性还难以保障。而Apollo经过多年的沉淀,很多公司的生产接入,稳定性更有保障,因此我们最终选定了Apollo系统。
本文暂时没有评论,来添加一个吧(●'◡'●)