微服务之配置中心

感谢董老师带领入门

概述:微服务架构体系中配置中心是比较重要的组件之一,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个)