zookeeper基本原理

简介:

基本原理

wKiom1efTNnA4ZCeAAX4DF7vo0w159.png-wh_50

server很多,有主从之分,不过有一个leader,其他是follower,

每个server,在内存中存有一份数据,启动时,将选举出一个leader,根据paxos协议选举

leader负责处理数据更新操作,用到zab协议

一个更新操作成功的标志,大多数server在内存,成功修改数据(一个有5个,有3个写成功了)

zookeeper角色

wKiom1efUNjzystXAAVvOCfJN1c712.png

怎么知道大多数写成功了,用到领导者发起投票,领导者收到3个投票,就是大部分写成功了。

学习者(learner)分为跟随者(follower),观察者(ObServer)
高可用,比如两个节点挂了,还是可以对外提供服务,为了支持更多客户端,需要增加server

server增多,会导致投票延迟增大,因为投票需要半数以上的投票成功,才认为是成功的

假设其中一个Server比较磨叽慢网络慢,zookeeper会权衡伸缩性和吞吐率,引入了一个observer

好处(1)不参与投票过程,只同步领导者状态,接收client连接,请求转发给领导者,这样follower跟领导者连接就少了,这样就不会影响,因为高并发,负载过高而挂掉,所以说observer可以分担一部分压力(2)当加入更多的observer之后,可以提gao整个zookeeper的伸缩性,还不影响吞吐率。

  1. leader选举算法采用了paxos协议。

  2. paxos核心思想是当多数server写成功,则任务数据写成功。

    1)如果有3个server,则需要两个写成功即表示任务数据写成功。

    2)如果有4个或5个server,则需要三个写成功即表示任务数据写成功。

  3. server数目一般为奇数个,例如3,5,7等等,

    1)如果有3个server,则最多允许1个server挂掉。(有两个写成功,表示成功)

    2)如果有4个server,则同样最多允许1个server挂掉(有三个写成功,表示成功)


wKioL1ef2EPyR_aXAAQay2z4T6A895.png

client给server发送请求,如果server1不是leader,server1会把请求转发给leader,leader会将请求广播给各个server,各个server写成功后,通知leader,当收到大多数server通知成功,表示写成功了



本文转自 skinglzw 51CTO博客,原文链接:http://blog.51cto.com/skinglzw/1833206,如需转载请自行联系原作者

相关文章
|
存储 算法 Java
准备跳槽必看的这道【Java面试题】:谈谈你对Zookeeper 选举原理的理解
一位工作了 7 年的程序员,最近在面试时被问到一个关于Zookeeper的问题。因为平时很少研究,所以面试的时候只能一直说:不知道,不知道,不知道。当时,他感觉很尴尬,面试还没结束,就已经知道应该被Pass了。于是又来问我,希望我能分享一期这样的视频。
414 2
|
监控 Dubbo Java
深入理解Zookeeper系列-2.Zookeeper基本使用和分布式锁原理
深入理解Zookeeper系列-2.Zookeeper基本使用和分布式锁原理
530 0
|
监控 Java 数据安全/隐私保护
ZooKeeper学习之内部原理
ZooKeeper学习之内部原理
342 0
|
消息中间件 分布式计算 算法
深入理解Zookeeper系列-3.Zookeeper实现原理及Leader选举源码分析(上)
深入理解Zookeeper系列-3.Zookeeper实现原理及Leader选举源码分析
1292 0
|
NoSQL 中间件 API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(下)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
611 2
|
NoSQL Java API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(上)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
632 0
|
负载均衡 算法 Java
分布式系列教程(10) -分布式协调工具Zookeeper(负载均衡原理实现)
分布式系列教程(10) -分布式协调工具Zookeeper(负载均衡原理实现)
481 0
|
分布式计算 负载均衡 算法
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
345 1
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
464 1
|
NoSQL Java API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
762 1

热门文章

最新文章