zookeeper

2018-01-14  本文已影响43人  BlackChen

分布式系统

分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间通过消息传递进行通信和协调的系统

特点

问题

分布式系统--CAP定理

这三个不能同时保证


一致性和可用性平衡方案
最终一致性

ZOOKEEPER

简介

开源的针对大型分布式系统的可靠协调系统
设计目标:将负责切容易出错的分布式一致性服务分装起来,构成一个搞笑的原语集,并已简单易用的接口提供给用户使用.
提供功能: 发布/订阅 分布式协调/通知,配置管理,集群管理,主从协调,分布式锁

特性

ZOOKEEPER架构

image.png

zookeeper角色

Observer
3.3.0 以后 版本新增角色Observer
增加原因:

Observer:
Observer不参与投票.
Observers接受客户端的连接,并将写请求转发给leader节点.
加入更多Observer节点,提高伸缩性,同时不影响吞吐率.

zookeeper 写入

  1. CLient向Follower提交写事务请求
  2. Follower接收到写请求,然后把写请求转发给Leader
  3. Leader收到写请求后,生成全局事务Id(ZXID),将事务Id与事务请求绑定在一起,组成一个消息体,然后放入队列,发送给Follower
  4. Follower 接收到写请求后,先以日志的形式写在本地,然后返回一个确认消息给Leader
  5. 当超过半数的Follower接收成功后,Leader发起一个提交事务通知,通知Follower提交事务.

zookeeper选举

服务器的4中状态:

事务ID:
ZXID表示,64位数字,由Leader统一分配,全局唯一,不断递增

全新启动期间选举

  1. 每个Server发出一个投票,内容为(myid,ZXID)
  2. 接收来自各个Server的投票
  3. 处理投票
  4. 统计投票
  5. 改变服务器状态


运行期间选举

  1. 所有Server切换为LOOKING,每个Server发出一个投票,内容为(myid,ZXID)
  2. 接收来自各个Server的投票
  3. 处理投票
  4. 统计投票
  5. 改变服务器状态


zookeepers数据模型ZNode

节点类型

节点类型:
组合节点类型

版本

版本类型
保证分布式数据原子性

Znode-状态

Znode-Watcher机制

http://blog.csdn.net/yinwenjie/article/details/47685077

应用场景

统一命名服务:

配置管理:


集群管理:


分布式锁:


分布式队列:


上一篇 下一篇

猜你喜欢

热点阅读