Skip to main content

Apollo 原理剖析

关于本系列​

本系列文章从部署架构、基础包模块、Portal/Config/Admin 三大服务的核心流程、Client 端 SPI 与 Spring 集成等维度,对 Apollo 配置中心做一次自下而上的源码级拆解。文中所有结论均基于 Apollo 官方源码与实际部署经验整理。

适用读者​

  • 想了解 Apollo 内部机制的研发同学
  • 正在评估 Apollo 在 k8s/VM 多 IDC 场景下可用性与部署方案
  • 需要对 Apollo 做二次开发或定制(如自定义 SPI、灰度规则、注册中心替换等)

阅读路径建议​

  1. 架构视角:常见部署架构和可用性 → Apollo 基础包模块剖析
  2. Portal 视角:Portal 配置资源管理 → Portal 配置更新流程 → Portal-OpenAPI 机制
  3. Admin 视角:核心流程 - Admin 配置发布 → Config - 灰度配置发布
  4. Config 视角:核心流程 - Client 接收配置通知 → Apollo Config 原理
  5. Client 视角:Apollo Config 原理 → Java Client 配置优先级 → Apollo client - SpringBoot 和注解初始化 → Apollo client - SPI 和 client 配置简析

文档清单​

#文档关注点
01常见部署架构和可用性单实例 / VM / k8s 多 IDC 部署,可用性分级
02Apollo 基础包模块剖析apollo-core / common / biz 包结构与关键类
03Portal 配置资源管理App / Cluster / Namespace / Item 等实体关系
04Portal 配置更新流程Portal 保存配置 → Item 表的请求链路
05Portal-OpenAPI 机制三方应用调用、ConsumerPermissionValidator 权限校验
06核心流程 - Admin 配置发布ReleaseService#publish、Portal 发布通知
07核心流程 - Client 接收配置通知ReleaseMessage 扫描、NotificationControllerV2、RemoteConfigRepository、RemoteConfigLongPollService
08Config - 灰度配置发布GrayReleaseRulesHolder、IP/Label 灰度规则
09Java Client 配置优先级Spring Boot/Cloud 启动时 Apollo 配置加载顺序
10Apollo client - SpringBoot 和注解初始化@EnableApolloConfig、AutoUpdateConfigChangeListener、PropertySourcesProcessor
11Apollo client - SPI 和 client 配置简析ConfigUtil 配置项、server.properties/app.properties、MetaServerProvider 等 SPI
12Apollo Config 原理Config 初始化、ConfigService / ConfigFactory / ConfigRepository

参考​

Loading Comments...