配置管理

配置特点:

  • 独立于程序的只读变量
  • 程序只能读取配置不能修改
  • 伴随应用的整个生命周期
  • 程序在启动时初始配置
  • 有多重加载方式
  • 配置文件,数据库,启动参数等方式
  • 需要治理

配置中心

单体开发中,程序会对应一份配置文件,但在微服务架构中,若是每个服务节点都存在一个配置文件显然会出现冗余,而且修改起来过于复杂.

对比 Spring Cloud Config Apollo Nacos
配置实时推送 y(spring cloud bus) y(http 长轮询1s) y(http 长轮询1s)
版本管理 Y(支持GIT) Y Y
配置回滚 Y(支持GIT) Y Y
灰度发布 Y Y Y
权限管理 Y(支持GIT) Y N
多集群 Y Y Y
多环境 Y Y Y
监听查询 Y Y Y
多语言 java 主流语言 主流语言
配置格式校验 N Y Y
单机读(QPS) 7 9000 15000
单机写(OPS) 5 1100 1800
3节点读(QPS) 21 27000 45000
3节点写(QPS)5 5 3300 5600

Nacos 特性

  1. 服务发现与健康检查

    可以通过DNS或者HTTP接口发现其他服务,Nacos还提供服务的实时健康检查,以防向不健康的主机或者服务实例发送请求

  2. 动态配置管理

    动态配置服务可以在所有环境中以集中和动态方式管理所有服务的配置.Nacos消除了在更新配置时重新部署应用程序,

  3. 动态DNS服务

    提供基于DNS协议的服务发现能力,支持异构语言的服务发现,支持将注册在Nacos上的服务以域名的方式暴露端点,让桑拿房应用方便的查阅发现

  4. 服务与元数据管理
    Nacos从微服务平台建设视角管理数据中心的所有服务以及元数据,包括管理服务的描述,生命周期,服务静态分析等.