首页 > 其他 > 详细

zookeeper概念

时间:2020-03-14 18:28:05      阅读:86      评论:0      收藏:0      [点我收藏+]

zookeeper概念

zookeeper 是个分布式协调服务的开源框架,解决分布式集群中应用系统的一致性问题

避免同时操作同一数据造成脏读问题

zookeeper 本质是一个分布式的小型文件存储系统,提供类似文件系统的目录树方式进行数据存储,并且对树中的节点进行有效管理,维护存储数据的状态变化

可以做基于数据的集群管理,如:统一命名服务、分布式配置管理、分布式消息队列、分布式锁、分布式协调等功能

?

zookeeper 特性

  1. 全局数据一致性
  2. 可靠性,消息被一台服务器接收,其他机器上的节点也会接收(删除一个节点的数据,其他节点也被删除该数据)
  3. 顺序性: 一台服务器中 a消息在 b之前发布,其他所有server 的a,b顺序也必须是 a在 b前
  4. 数据更新原子性: 有要吗成功(半数以上节点成功),要吗失败,没有中间状态
  5. 实时性: zookeeper 保证客户端在一个时间间隔内获得服务器更新信息,或者服务器失效信息

?

技术分享图片

?

?

事务请求(写操作): 用 leader进行调度处理,保证事务处理的顺序性;

集群内部的各个服务的调度者:对于 create,setData,delete等写操作,转发给 leader,由leader决定编号,执行操作,这个过程叫做一个事务

?

follower:

处理客户端的非事务(读操作)请求,转发事务请求给 leader

参与集群 leader的选举投票

?

如果某个 leader挂了,或者加入一个新的节点,就会投票选举一个新的leader

?

有3种角色:

  1. leader
  2. follower
  3. Observer(观察者)

当访问量比较大的话,可以加入观察者进行横向扩展, 它不会参与任何形式的投票,只是提供非事务的服务,不影响集群事务处理能力的前提下,提升集群处理非事务处理的能力

客户端的响应会更加友好

?

zookeeper集群的搭建

zookeeper 集群搭建指的是zookeeper分布式模式的安装,通常由 2*N+1 台 servers组成,这是为了保证leader的选举(基于 paxos算法的实现

????关于 paxos算法 [ https://blog.csdn.net/u013679744/article/details/79222103 ]

????

?

?

技术分享图片

?

Session 会话: 客户端会话,客户端和服务端建立一个 TCP 长连接 org.apache.zookeeper.ClientCnxn

?

zookeeper数据结构

技术分享图片

状态属性

说明

czxid

节点创建时的zxid

mzxid

节点最新一次更新发生时的 zxid

ctime

节点创建时的时间戳.

mtime

节点最新一次更新发生时的时间戳.

dataVersion

节点数据的更新次数.

cversion

其子节点的更新次数

aclVersion

节点 ACL(授权信息)的更新次数.

?

ephemeralOwner

如果该节点为 ephemeral 节点, ephemeralOwner 值表示与该节点绑定的 session id. 如果该节点不是 ephemeral 节点, ephemeralOwner 值为 0. 至于什么是 ephemeral 节点

dataLength

节点数据的字节数.

numChildren

子节点个数.

??
??
??

?

顺序号:

创建znode 时设置顺序标识,znode名称后会附加一个值

顺序号是一个单调递增的计数器,由父节点维护

在分布式系统中,顺序号可以被用于为所有的事件进行全局排序,这样客户端可以通过顺序号推断事件的顺序

?

控制访问列表: ACL( Access control list)

org.apache.zookeeper.ZooDefs

内置的 ACL schemes:

world: 默认方式,相当于全世界都能访问

auth: 代表已经认证通过的用户(cli中可以通过 addauth digest user:pwd 来添加当前上下文中的授权用户)

digest: 即用户名: 密码这种方式认证,这也是业务系统中最常用的

ip: 使用 ip地址认证

acl支持权限:

create: 能创建子节点

read: 能获取节点数据和列出其子节点

write: 能设置节点数据

delete:能删除子节点

admin: 能设置权限

?

技术分享图片

?

?

?

?

Leader 选举:

looking,following ,leading ,observing

?

cap理论:

技术分享图片

?

分布式领域 CAP 理论

Consistency(一致性), 数据一致更新,所有数据变动都是同步的;

Availability(可用性), 好的响应性能;

Partition tolerance(分区容忍性) ;可靠性

?

定理:任何分布式系统只可同时满足二点,没法三者兼顾

?

一致性协议 :

BASE/Paxos/Raft/zab 等协议

?

zab算法: https://www.jianshu.com/p/400a44edee88

?

?

?

?

?

?

?

?

?????

zookeeper概念

原文:https://www.cnblogs.com/lyr-2000/p/12493370.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!