配置中心怎么设计?(nacos)
配置中心核心要解决三个问题--怎么存、怎么推、怎么刷新。
存储用Mysql持久化加内存缓存,读取快。推送用长轮询,客户端发起请求,服务段hold住连接,配置变更了立即返回,没变更30秒超时返回再发起下一次。
长轮询和WebSocket比有什么优势?
长轮询实现简单,兼容性好,不需要维护长连接状态。WebSocket实时性更好但复杂度高,配置变更场景长轮询够用。
灰度发布怎么做?
推给指定IP的实例,观察没问题再全量推送。Nacos的Beta配置就是这个机制。
三个核心机制
第一个,长轮询
客户端发起请求,服务段不立即返回,而是hold住。如果配置变更了,立刻返回新配置;如果没有变更,30秒超时后返回,客户端再发起下一次请求。这就好比你不每天去翻邮箱了,而是站在邮箱旁边等,邮递员一来你就拿到了。长轮询比定时拉取试试性好,比WebSocket简单,是配置中心的标准方案。
第二个,配置隔离
Nacos用Namespace隔离环境,Group隔离项目,Datald标识具体配置文件。开发环境、测试环境、生产环境的配置互不影响。这就像一栋楼里不同的房间,每个房间有自己的钥匙,串不了门。
第三个,灰度发布
不是一次配置所有实例都生效,而是先推给一部分实例观察。Nacos的Beta配置只推给指定IP的实力,没问题了再全量推送。
总结:长轮询解决实时性,三级隔离解决多环境,灰度发布解决安全发布。

浙公网安备 33010602011771号