前言:Nacos支持AP和CP模式,我们可以切换Nacos的CAP模式以求适应项目的实际需求
Tips:CAP里的C是指所有节点在同一时间看到的数据是一致的(数据一致性);而A是指所有的请求都会收到响应(可用性);P是指网络被分成若干个孤立的区域,而区域之间互不相通但仍然可以接受请求,对外提供服务(分区容错性)。
1、何时选择使用何种模式?
一般来说,如果不需要存储服务级别的信息且服务实例是通过nacos-client注册,并能够保持心跳上报,那么就可以选择AP模式。当前主流的服务如Spring coud和Dubo服务,都适用于AP模式,AP模式为了服务的可用性而减弱了一致性,因此AP模式下只支持注册临时实例。如果需要在服务级别编辑或者存储配置信息,那么CP是必须,K8S服务和DNS服务则适用于CP模式。CP模式下则支持注册持久化实例,此时则是以Raft协议为集群运行模式,该模式下注册实例之前必须先注册服务,如果服务不存在,则会返回错误
2、Nacos切换CAP模式
使用以下命令切换并启动nacos服务
curl -X PUT '$NACOS_SERVER:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=CP'