初始模型:

配置中心先只做三件事:存配置、查/改配置、订阅配置变化。服务启动后先拉取一次配置,同时建立订阅;有人修改配置后,配置中心立即通知相关服务。

然后再逐步补能力:

  • 实时通知:不希望服务频繁轮询 → SSE / WebSocket / gRPC Stream / 长轮询
  • 版本号:连接可能断、通知可能漏 → 配置每次修改版本递增,重连后发现版本落后就重新拉
  • 高可用:单节点配置中心挂了不能影响整个系统 → 多节点部署
  • 一致性:多节点之间配置不能不一样 → 允许依赖组件就用 etcd;要求自研就用 Raft 做复制和多数派提交
  • 持久化:进程重启后配置不能丢 → 落数据库或一致性存储,而不是只放内存

最后主线就很好记:

先能存、能改、能订阅 → 再解决实时通知 → 再解决漏通知 → 再解决单点 → 最后解决多节点一致性。