Nacos 服务注册中心对比与提升

服务注册与发现框架 CAP 模型 控制台管理 社区活跃度

Eureka AP 支持 低(2.x版本闭源)

Zookeeper CP 不支持 中

Consul CP 支持 高

Nacos AP/CP 支持 高

一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)

Nacos 厉害就在于它是可选择AP或者CP的模式

Nacos实例 可以选择临时实例 和持久化实例

临时实例: 客户端上报健康状态,摘除不健康实例,非持久化 AP Eureka

持久化实例:服务端探测健康状态,保留不健康实例,持久化 CP Consul

C 是所有节点在同一时间看到的数据是一致的;而A 的定义是所有的请求都会收到响应。

何时选择何种模式?

一般来说,如果不需要存储服务级别的信息且服务实例是通过nacos-client注册,并能够保持心跳上报,那么就可以选择AP模式。当前主流的服务如 Spring cloud 和Dubbo 服务,都适用于AP模式,AP模式为了服务的可用性而减弱了一致性,因此AP模式下只支持注册临时实例。

如果需要在服务器级别编辑或者存储配置信息,那么CP是必须,K8S和DNS服务则适用于CP模式。
CP模式下则支持注册持久化实例,此时则是以Raft协议为集群运行模式,该模式下注册实例之前必须先注册服务,如果服务不存在,则会返回错误。

curl -X PUT '$NACOS_SERVER:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=CP'

posted @ 2020-08-15 17:31  九角冰山  阅读(391)  评论(0编辑  收藏  举报