ZooKeeper学习笔记

一、ZooKeeper概念和基础

        1、ZooKeeper的使命就是在分布系统中协作多个任务。一个协作任务就是指一个包含多个进程的任务;这个任务可以是为了协作,也可以是为了管理竞争。协作可以理解成多个进程需要一同处理某些事情;竞争则是两个进程不能同时处理工作的情况。

        2、ZooKeeper不适用做海量数据存储,应该将应用数据和协同数据分开。

        3、分布式系统是同时跨越多个物理主机,独立运行的多个软件组成的系统。

        4、分布式系统中进程通信的两种选择:1)直接通过网络进行交换;2)读写某些共享存储。ZooKeeper使用共享存储

        5、拜占庭将军问题

        6、提供原语列表的缺点:1)需要提供详尽的原语列表或者API扩展;2)这种实现方式丧失了灵活性。

        7、ZooKeeper不直接暴露原语,而是暴露了一小部分调用方法组成类似文件系统的API,以便允许应用实现自己的原语。一个znode节点包含四个子节点,分别是serviceid、workers、tasks、assign;其中serviceid没有子节点,其余三个包含子节点。

        8、ZooKeeper的API:

              1)create /path data

              2)delete /path

              3)exists /path

              4)setData /path data

              5)getData /path

              6)getChildren /path

        9、znode的类型:1)持久的;2)临时的;3)持久有序的;4)临时有序的。

        10、临时节点会被删除的情形:1)创建该znode的客户端因超时或主动关闭;2)某个客户端(不一定是创建该节点的客户端)主动删除该节点。

        11、每个znode的都有一个版本号,这个版本号随着每次数据的变化而自增。

        12、ZooKeeper的两种运行模式:1)独立模式(standalone);2)仲裁模式(quorum)

                独立模式中ZooKeeper的状态无法复制;仲裁模式可以进行状态复制,并同时服务于客户端请求。

        13、会话:同一个会话中的请求以FIFO(先进先出)顺序执行。同时一个客户端指打开一个会话,这样才能保证FIFO的顺序。

        14、会话状态:NOT_CONNECTED、CONNECTIING、CONNECTED、CLOSED

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容