产品简介
# 前言
本文档为金蝶Apusic分布式配置中心for Apollo(Apusic Distributed Config Center for Apollo,简称ADCC for Apollo)V1.0的产品介绍,帮助用户快速了解ADCC for Apollo产品的功能、技术特性及典型应用场景。
# 适用对象
本文档适用于IT信息化业务负责人、研发经理、软件项目经理、软件架构师、运维工程师。
# 相关文档
了解更多ADCC for Apollo v1.0产品相关的信息,请参阅以下ADCC for Apollo V1.0产品手册文档集:
| 序号 | 手册文档 | 说明 |
|---|---|---|
| 1 | 金蝶Apusic分布式配置中心for Apollo V1.0 安装手册 | 详细介绍如何在各操作系统上安装ADCC for Apollo,以及服务组件实例启停操作,产品的注册过程。 |
| 2 | 金蝶Apusic分布式配置中心for Apollo V1.0 用户手册 | 详细介绍 ADCC 相关功能的使用、配置、管理及配套工具的使用方法。 |
| 3 | 金蝶Apusic分布式配置中心for Apollo V1.0 开发手册 | 详细介绍基于各种开发语言进行ADCC for Apollo客户端应用开发的说明。 |
| 4 | 金蝶Apusic分布式配置中心for Apollo V1.0 API开放平台手册 | 详细介绍ADCC for Apollo的标准API。 |
| 5 | 金蝶Apusic分布式配置中心for Apollo V1.0 常见问题 | 详细介ADCC for Apollo的常见问题及处理方法。 |
# 技术支持
ADCC for Apollo产品提供全面的技术支持服务,您可以通过以下方式获得技术支持:
网址:www.apusic.com
电话:400-855-5800
邮箱:support@apusic.com
金蝶云社区:https://vip.kingdee.com/?productId=73&productLineId=14&lang=zh-CN
您在取得技术支持时,请提供如下信息:
您的姓名
公司信息与联系方式
操作系统及其版本
产品版本号
出现异常及错误的日志、截图等详细信息
# 产品介绍
金蝶Apusic分布式配置中心软件for Apollo (Apusic Distributed Config Center for Apollo ,简称:ADCC for Apollo)是一款可靠的分布式配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
下图是ADCC for Apollo的技术架构:

整个架构一共七个模块,其中四个模块是和功能相关的核心模块,另外三个模块是辅助服务发现的模块。
- ConfgService、AdminService、Client、Portal是ADCC for Apollo的四个核心微服务模块,相互协作完成配置中心业务功能。
- Eureka/MetaServer/NginxLB是辅助微服务之间进行服务发现的模块。
# 核心模块及其主要功能
# ConfigService
提供配置获取接口和配置推送接口。
ConfigService是一个独立的微服务,服务于Client进行配置获取。
Client和ConfigService保持长连接,通过一种推拉结合(push & pull)的模式,在实现配置实时更新的同时,保证配置更新不丢失。
服务于Apollo客户端。
# AdminService
AdminService是一个独立的微服务,服务于Portal进行配置管理。Portal通过调用AdminService进行配置管理和发布。
提供配置管理、配置修改发布接口。
服务于管理界面Portal。
ConfigService和AdminService共享ConfigDB,ConfigDB中存放项目在某个环境中的配置信息。
ConfigService/AdminService/ConfigDB三者在每个环境(DEV/FAT/UAT/PRO)中都要部署一份。
# Client
为应用获取配置,支持实时更新
通过MetaServer获取ConfigService的服务列表
使用客户端软负载SLB方式调用ConfigService
# Portal
提供Web配置管理界面对应用、配置、命名空间等进行管理
通过MetaServer获取AdminService的服务列表
使用客户端软负载SLB方式调用AdminService
Protal有一个独立的PortalDB,存放用户权限、项目和配置的元数据信息。Protal只需部署一份,它可以管理多套环境。
# 辅助服务发现模块
# Eureka
用于服务发现和注册
Config/AdminService注册实例并定期报心跳
和ConfigService在一起部署
Config/AdminService启动后都会注册到Eureka服务注册中心,并定期发送保活心跳。
Eureka采用集群方式部署,使用分布式一致性协议保证每个实例的状态最终一致。
# MetaServer
Portal通过域名访问MetaServer获取AdminService的地址列表
Client通过域名访问MetaServer获取ConfigService的地址列表
相当于一个Eureka Proxy
逻辑角色,和ConfigService住在一起部署
# Nginx (LB)
额外的分布式组件,提供负载均衡和流量接入,可使用Nginx、Apusic负载均衡器(ALB)等。
与域名系统配合,协助Portal访问MetaServer获取AdminService地址列表
与域名系统配合,协助Client访问MetaServer获取ConfigService地址列表
与域名系统配合,协助用户访问Portal进行配置管理
# 功能特性
统一管理不同环境、不同集群的配置
- ADCC for Apollo提供了一个统一界面集中式管理不同环境(environment)、不同集群(cluster)、不同命名空间(namespace)的配置。
- 同一份代码部署在不同的集群,可以有不同的配置,比如zk的地址等。
- 通过命名空间(namespace)可以很方便的支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆盖。
- 配置界面支持多语言(简体中文、English)。
配置修改实时生效(热发布)
- 用户在配置中心修改完配置并发布后,客户端能实时接收到最新的配置,并通知到应用程序。
版本发布管理
- 所有的配置发布都有版本概念,从而可以方便的支持配置的回滚。
灰度发布
- 支持配置的灰度发布,比如点了发布后,只对部分应用实例生效,等观察一段时间没问题后再推给所有应用实例。
权限管理、发布审核、操作审计
- 应用和配置的管理都有完善的权限管理机制,对配置的管理还分为了编辑和发布两个环节,从而减少人为的错误。
- 所有的操作都有审计日志,可以方便的追踪问题。
客户端配置信息监控
- 可以方便的看到配置在被哪些实例使用
提供Java和.Net原生客户端
- 提供了Java和.Net的原生客户端,方便应用集成。
- 支持Spring Placeholder,Annotation和Spring Boot的ConfigurationProperties,方便应用使用(需要Spring 3.1.1+)。
- 同时提供了HTTP接口,非Java和.Net应用也可以方便的使用。
提供开放平台API
- ADCC for Apollo自身提供了比较完善的统一配置管理界面,支持多环境、多数据中心配置管理、权限、流程治理等特性。
- 在我们的调研中发现,对于有些使用方,它们的配置可能会有比较复杂的格式,如xml, json,需要对格式做校验。
- 还有一些使用方如DAL,不仅有特定的格式,而且对输入的值也需要进行校验后方可保存,如检查数据库、用户名和密码是否匹配。
- 对于这类应用,Apollo支持应用方通过开放接口在Apollo进行配置的修改和发布,并且具备完善的授权和权限控制。