Nacos 和 ZooKeeper 都是服务发现和配置管理的工具,它们的主要区别如下:
功能特性:Nacos 比 ZooKeeper 更加强大,Nacos 支持服务发现、动态配置、流量管理、服务治理、分布式事务等功能,而 ZooKeeper 主要用于分布式协调和服务发现。(服务器注册到配置中心:服务发现,客户端调用某个服务器:分布式协调)
数据一致性:Nacos 支持 AP 和 CP 模式,而 ZooKeeper 只支持 CP 模式。AP 模式强调可用性,允许出现数据不一致的情况,而 CP 模式强调数据一致性,在网络分区的情况下可能会出现部分不可用的情况。 (无论client连哪个服务器,显示的数据都是一样的)
存储方式:Nacos 使用 MySQL 或者 TiDB 存储数据,而 ZooKeeper 使用内存数据库存储数据。
生态系统:ZooKeeper 是 Apache 的顶级项目,生态系统比较完善,而 Nacos 是阿里巴巴开源的项目,生态系统相对较小。
综上所述,Nacos 更加适合用于微服务架构,而 ZooKeeper 更加适合用于分布式系统。
Zookeeper
全局数据一致性CP:
配置文件都一致
顺序性
每个配置的添加都是一样的顺序,一条条按顺序条件
更细原子性
100台机子,只要51台成功,数据更新就成功
宕机的机子重启后数据会同步吗
服务器宕机启动成功后,zookeeper会把配置同步给重启成功的服务器,同步完全后,才允许分布式协调。
集群
必须有个老大leader
有个选举机制
leader处理写操作,如果写操作给到follow(不能直接写),follow会给到leader;
leader写操作会广播给follow去写。
leader处理事务(写)
follow处理非事务操作(读)
observer 除了不能投票,干的事和follewer一样