## 前言
大家好,今天开始给大家分享 — Dubbo 专题之 Dubbo 动态配置中心。在前一个章节中我们介绍了 Dubbo 中的注册中心以及多种不同的注册中心实现,我们在这个章节会介绍 Dubbo 动态配置中心。下面就让我快速吧!
## 1. 配置中心简介
有小伙伴可能会问,那什么是配置中心呢?有什么作用呢?我们平常在开发中可能会遇到这样一个场景。假设我们有个对外接口需要动态调整开/关配置,来达到动态控制效果。我们的实现方案可能有:存数据库、写文件等等,同时我们也可以通过集中式、统一配置方式来动态管理,例如:Apollo、Nacos、Zookeeper等提供了比传统数据库存储更强大的功能,例如:多租户、实时同步、分布式等特性。我们可以利用这些配置中心特性对我们的 Dubbo 中的所有配置参数进行统一的动态管理。
![配置中心](http://youngitman.tech/wp-content/uploads/2021/04/配置中心.png)
根据上图我们可以看到,当我们变更配置中心参数时配置中心会通知服务消费者和服务提供者。这样我们就可以实现动态调整 Dubbo 中的参数。
## 2. 配置中心技术选型
我们一般通过以下几个维度来衡量一个配置中心:
1. 分布式配置统一管理
2. 动态变更通知
3. 安全性
4. 实时性
目前配置中心主要包括:Eureka(官方不维护)、Apollo、Spring Cloud Config、Nacos。它们的对比情况如下:
| 功能点 | Spring Cloud Config | Apollo | Nacos |
| ------------ | ---------------------------------------------------- | ------------------------------------------ | ------------------------------- |
| 开源时间 | 2014.9 | 2016.5 | 2018.6 |
| 配置实时推送 | 支持(需要Spring Cloud Bus支持) | 支持(HTTP长轮询) | 支持(HTTP长轮询) |
| 版本管理 | 支持(Git) | 支持 | 支持 |
| 配置回滚 | 支持(Git)