1. Nacos 配置中心的 CP/AP 模式切换(Raft/Distro)
请说明 Nacos 配置中心的 CP/AP 模式切换机制,以及 Raft 与 Distro 协议在两种模式下的差异与作用?
- Nacos 的 CP/AP 双模式
- Raft 协议(CP 模式)
- Distro 协议(AP 模式)
Nacos 支持配置管理与服务发现两大能力,其一致性模式可配置为 CP 或 AP。CP 模式使用 Raft(JRaft)协议实现强一致,保证配置数据在所有节点间一致,适合配置中心等对一致性要求高的场景;AP 模式使用 Distro 协议,保证可用性优先、数据最终一致,适合服务注册发现(临时实例)等对可用性要求高、允许短暂不一致的场景。Nacos 的一致性模式由注册实例的类型决定(临时实例 ephemeral 走 AP 的 Distro 协议,持久实例 persistent 走 CP 的 Raft 协议),可按服务/实例独立指定模式。CP 模式下写操作必须多数派确认,分区时牺牲可用性;AP 模式下每个节点可接受写入,数据异步收敛,分区时仍可服务。生产上配置中心通常用 CP 保证配置一致,服务发现用 AP 保证可用性。
CP/AP 取舍是 Nacos 的核心设计:配置中心用 CP 防止配置分裂,服务发现用 AP 防止注册中心不可用导致服务调用失败。Raft 提供强一致,Distro 提供高可用,两者通过模式切换满足不同场景的 CAP 权衡。