我们知道zookeeper的功能是通知协调,那么如何理解通知协调呢
1、首先要理解zookeeper集群的特性,就是zookeeper会根据仲裁策略选出群首(后续有时间我会出一片讲解 zookeeper仲裁策略的文章),通常zookeeper集群要求活跃单机个数要超过集群数量的一半,同样的,一半以上单机选的群首,才能作为群首。所以zookeeper集群的个数应该为奇数较合理(有人会说我们公司就是偶数的也没问题,这个没有对错,只是在某种极端的情况下会出问题,但是通常我们都不会遇见)
2、其次集群在执行客户端发的命令的时候,是把所以写的命令发给集群来执行,而且集群的执行是严格同步且有序的,这个很关键
3、zookeeper的通知机制可以说给分布式提供了高效的管理机制,可以给任何节点绑定通知事件,包括增、删、改、创建等事件
4、zookeeper的数据结构或者说存储结构是一个个文件和目录,也就是我们所说的znode,多个znode就形成了文件树,如果有两个客户端同时创建一个znode,这时候群首只会执行一次创建的命令。对于创建失败的那个会返回znode已经存在,这有什么好处呢,这就为分布式协调提供了可靠的保证
好了就说这么多,关于zookeeper,有兴趣的同学可以提问
网友评论