zookeeper宏观认识

几个重要的点:

①leader肯定会挂

②服务不可用

③不可靠的集群

④in fact,zk集群极其高可用

⑤可以快速恢复一个leader

zookeeper中有两种运行状态:

①可用状态

②不可用状态

③不可用状态恢复到可用状态时间越短越好

zookeeper的主从模型,只有一个主节点,而且只有主节点负责写,从节点的写操作必须发给主节点来完成。

①顺序一致性:客户端发过来的更新请求将按顺序执行。

②原子性:更新要么都成功,要么都失败。没有其他状态。只有leader主节点写成功之后再复制给其他follower从节点。

③单系统映像:无论客户端连接到哪个zk节点,客户端都将看到相同的服务视图。

④可靠性:一旦应用进行了更新,它将从那时起持续到客户端覆盖更新。因为进行了持久化才能这么搞。

⑤实时性:系统的客户视图保证在特定时间范围内是最新的。

zookeeper选择新领导者的时间不到200毫秒

Reliability in the Presence of Errors

zookeeper很快:它在“读取主导”的工作负载中特别快,并且在读取比写入更常见的情况下表现更加

(redis单节点一秒钟大概能hold住10w左右的并发)

如下图所述,zk集群只有3个节点时能hold住8w左右,13个节点能hold住14w左右请求。

ZooKeeper Throughput as the Read-Write Ratio Varies

zookeeper是一个目录树结构,zk中任意节点均可存放数据,但存的数据量比较小,只有1M。

这点有别于文件系统,因为文件夹是不能存放数据的,只能存放文件夹和文件。

所以,不要把zookeeper当做数据库用。为了保证快,必须要保证所有节点传输数据时数据体量越小越好。不要让zookeeper写的比例过大,读多写少,性能才更优。

zookeeper中的节点:

①持久节点

②临时节点

ZooKeeper's Hierarchical Namespace

每个客户端连接到zk节点时会产生一个session来代替该客户端,就是一次会话,连接断开时会话销毁。 

发布了755 篇原创文章 · 获赞 343 · 访问量 77万+

猜你喜欢

转载自blog.csdn.net/a772304419/article/details/103960649