Zookeeper

zookeeper

  1. 分布式系统的2PC和3PC
    1. 2PC
      1. 提交事务请求
      2. 执行事务提交
    2. 3PC
      1. CanCommit
      2. PreCommit
      3. DoCommit
  2. Paxos算法描述
    1. 阶段一:
      1. Propose提出一个提案M,向Acceptor的某个超过半数的子集的成员发送带M的请求Prepare
      2. Acceptor收到该M提案,如果M提案的id大于所有其批准的最大提案的id,则返回给Propose其批准过的最大id,并向其承诺不会再批准比M提案id更大的提案。
    2. 阶段二 :
      1. 在Acceptor收到prepare请求后,会返回一个响应,[M, V],这个V就是其批准过的最大提案id
  3. Hypertable
    1. Hypertable由四部分构成:Hyperspace、RangerServer、Master、DFS Broker

ZooKeeper

zookeeper是一个分布式数据一致性的解决方案,其可以保证:
顺序一致性、原子性、单一视图、可靠性、实时性。

zookeeper的分布式一致性协议是ZAB,ZAB主要包括两个模型:崩溃恢复和消息广播

一. 系统模型详解

  1. 描述:存在一个进程子集,其必定是进程组的子集,并且,任意两个进程子集,其交集必定非空。因此,ZAB系统模型具备以下特性:
    1. 完整性:即如果一个进程P1接收到另一个进程P2发出的消息M,则进程P2一定发送了消息M
    2. 前置性:如果一个进程收到了一个消息M2,如果消息M1是M2的前置消息,则该进程一定先接收到M1,再接收到M2。
  2. ZAB的消息广播和崩溃恢复具体表现三个阶段,即发现、同步、广播。这个循环是一个主进程周期。Follower向准Leader
    1. 发现阶段:leader选举的过程
    2. 同步阶段:判断Follower是否在当前循环内
    3. 广播阶段

docker-compose启动Zookeeper集群

  1. 拉取zk镜像:

    docker pull zookeeper

  2. 编写docker-compose.yml文件
version: '2'
services:
    zoo1:
        image: zookeeper
        restart: always
        container_name: zoo1
        ports:
            - "2181:2181"
        environment:
            ZOO_MY_ID: 1
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
    zoo2:
        image: zookeeper
        restart: always
        container_name: zoo2
        ports:
            - "2182:2181"
        environment:
            ZOO_MY_ID: 2
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
    zoo3:
        image: zookeeper
        restart: always
        container_name: zoo3
        ports:
            - "2183:2181"
        environment:
            ZOO_MY_ID: 3
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
  1. 启动docker-compose

COMPOSE_PROJECT_NAME=zk_test docker-compose up

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值