zookeeper基础

一致性:(zab协议)

  leader(选举过程)

  2pc的实现:

    1、占用资源----预提交(leader写日志,写磁盘)

    2、ack----等待

    3、执行----提交(leader写database,flower写database[异步提交])

  少数服从多数

  同步过程

领导者选举:

  1、集群启动

  2、leader挂掉

  3、超过一半flower挂掉

zookeeper尽量达到强一致性

 

 zookeeper进行写操作:

  1、写到主节点,主要是指写日志

  2、包装成事务发送到从节点

  3、从节点写日志

  4、超过半数ack以后

  5、提交commit到队列,这一步是异步的,事务不是强一致性的根本原因

  6、写数据到leader的datatree

  7、写数据到follower的datatree

 

 

(快照+日志)作为持久化的手段

生成日志zxid

每个人都有一个自己的投票箱

每个zookeeper把自己的票广播给其他人

 

 

zookeeper:同步阻塞问题、单点问题、数据不一致、容错性不好

posted @ 2020-05-19 00:34  海平面下的我们  阅读(140)  评论(0编辑  收藏  举报