微服务之配置中心

感谢董老师带领入门

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