多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
**1. CAP理论** 著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性P在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。 <br/> **2. Nacos的AP模式和CP模式切换** Nacos是可以在AP模式和CP模式之间进行切换的,默认为AP。 (1)切换为CP模式。 ``` curl -X PUT "http://localhost:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=CP" ``` ![](https://img.kancloud.cn/a7/f1/a7f1f529030f28544e477c4ad1e6ef88_1518x241.png) (2)切换为AP模式。 ``` curl -X PUT "http://localhost:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=AP" ``` <br/> **3. 选用何种模式** 一般来说,如果不需要存储服务级别的信息且服务实例是通过nacos-client注册,并能够保持心跳上报,那么就可以选择AP模。当前主流的服务如Spring cloud和 Dubbo服务,都适 用于AP模式。AP模式为了服务的可能性而减弱了一致性,因此AP模式下只支持注册临时实例。 <br/> 如果需要在服务级别编辑或者存储配置信息,那么CP是必须,K8S服务和DNS服务则适用于CP模式。CP模式下则支持注册持久化实例,此时则是以Raft 协议为集群运行模式,该模式下注册实例之前必须先注册服务,如果服务不存在,则会返回错误。 ![](https://img.kancloud.cn/9b/2f/9b2f5059d8649365fecebf30ea941618_1004x508.png)