专业的编程技术博客社区

网站首页 > 博客文章 正文

一款开源的实用配置中心系统-Apollo

baijin 2024-08-22 09:31:49 博客文章 3 ℃ 0 评论
 在实际项目中,我们经常需要对一个新功能做切流验证。在不停机不重启的前提下,对系统内的值进行更新,从而达到动态的配置和更新。这里就涉及到一个统一的配置中心系统,经过前期调研,我们对比了Apollo和Nacos,并最终选择了Apollo系统。

一、基本信息

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

Apollo具备了配置中心常用的所有功能:

  1. 统一管理不同环境、不同集群的配置
  2. 配置修改实时生效(热发布)
  3. 版本发布管理
  4. 灰度发布
  5. 权限管理、发布审核、操作审计
  6. 客户端配置信息监控
  7. 提供Java和.Net原生客户端
  8. 提供开放平台API
  9. 部署简单

前8条都是非常实用的功能点,第9个老实说部署还是有点挑战和成本的,后面会再讲。

二、基本架构

为了支撑以上功能,Apollo拆分成了几大模块:

1、ConfigService

核心的配置中心模块,提供数据推送、拉取

2、AdminService

提供用户端的配置修改、管理等,相对于用户界面的后台

3、Client

提供业务系统的接入jar

4、Portal

为程序员提供管理前端页面

四、对比

在选型之初,我们还考虑了阿里出品的Nacos,它除了配置中心外,还包含更多的功能:服务注册、服务发现等。它的优点是部署相对简单,没有多个不同角色分开部署,同时还提供了docker支持,部署成本大大降低。

但鉴于Nacos开源时间有限,遗留issue数量较多的问题,显而易见稳定性还难以保障。而Apollo经过多年的沉淀,很多公司的生产接入,稳定性更有保障,因此我们最终选定了Apollo系统。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表