感谢董老师带领入门
概述:微服务架构体系中配置中心是比较重要的组件之一,Spring Cloud官方自身提供了Spring Cloud Config分布式配置中心,由它来提供集中化的外部配置支持,它分为客户端和服务端两个部分
为什么需要配置中心
- 配置实时生效
- 配置管理流程: 权限管控、灰度发布、版本管理、格式检验和安全配置等
开源配置中心:
| 对比 | Spring Cloud Config | Apollo | Nacos |
|---|---|---|---|
| 应用 | 和对应Git中的文件名称关联 | 在某个应用下面(不包含公共配置) | 使用 Group 作应用字段 |
| 集群 | 支持 | 支持 | 支持 |
| 灰度发布 | /bus/refresh端点的destination参数来指定 | 支持 | 不支持(0.9) |
| 权限管理 | 依赖Git,比较完善 | 通过项目的维度来对配置进行权限管理 | 不支持 |
| 版本管理&回滚 | 支持 | 支持 | 支持 |
| 配置格式校验 | 不支持 | 支持 | 支持 |
| 监听查询 | 支持订阅 | 灰度实例列表 | 支持 |
| 多环境 | 支持 | 支持 | 支持 |
| 多集群 | 支持 | 支持 | 支持 |
| 实时推送 | 不支持 | 支持 | 支持 |
| 高可用 | GitHub不需要,私有git需要,成本高较复杂 | 本地缓存文件保证 | Mysql提供持久化 |
| 运维成本 | 高可用成本高 | 高 | 低 |
| 多语言支持 | Java和HTTP API,动态配置不足 | open API,接入成本较低 | 主流语言,提供open API |
| 迁移支持 | 支持 | 支持,存在从cloud config转换的兼容成本 | 支持,可以无缝从Spring Cloud Conig切换 |
| 性能对比 | 从git拉取较慢 | 较快,缓存+db | 较快,db |
| 版本 | 2.0.0.M9 | 1.2.0 release | 0.5 |
| 单机读 | 7QPS | DB:7000QPS,cache:9000QPS | 15000QPS |
注:Nacos和Apollo使用同样的数据库(32C128G),部署Server服务的机器使用的8C16G配置的容器,磁盘是100G SSD
多台机器,每台机器开启多个线程从配置中心读取不同的配置(3000个)