ZooKeeper概要

Zookeeper介绍

Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群关联、Master选举、分布式锁和分布式队列等功能

  1. 顺序一致性
    从同一个客户端发起的事务请求,最终将会严格地按照其发起顺序被应用到ZooKeeper中
  2. 原子性
    所有事务请求的处理结果在整个集群中所有机器上的应用情况是一致的
  3. 单一视图
    客户端无论连接哪个ZooKeeper,其看到的服务端数据模型都是一致的
  4. 可靠性
  5. 实时性
    ZooKeeper仅仅保证在一定的时间段内,客户端最终一定能够从服务端上读取到最新的数据状态

ZooKeeper的基本概念

集群角色:

  1. 在传统的分布式系统中,构成集群的每一台机器都有自己的角色,最典型的就是Master/Slave模式。
  2. 但在ZooKeeper中,这些概念被颠覆了。它引入了Leader/Follower/Observer三种角色。(感觉类似Redis的集群模式,Redis在集群模式下,有哨兵进行监督)

会话:

  1. 当由于服务器压力过大、网络故障或是客户端主动断开连接等各种原因导致客户端连接断开时,只要在sessionTimeout规定时间内能够重新连接上集群中任意一台服务器,那么之前创建的会话仍然有效。

数据节点

  1. 构成集群的机器,机器节点
  2. 数据模型中的数据单元——数据节点(这个暂时不清楚是指什么)

版本

Watcher

  1. Watch(事件的监听器)。zookeeper运行用户在指定节点上注册一些watcher,并且在一些特殊事件触发时,ZooKeeper服务端会将事件通知到感兴趣的客户端上

ACL Access Control List来进行权限控制,类似Linux上的权限

Zab算法

ZAB特性

  1. 一致性保证
    a. 可靠性提高,如果一个事务被一个server提交(commited),那么它最终一定会被所有server提交
    b. 全局有序,假设有A、B事务,有一台server先执行A再执行B,那么最终可以保证所有server上A始终都在B之前执行
    c. 因果有序,如果发送者在事务A提交之后再发送B,那么B必将再A之前执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值