
ZooKeeper
ZooKeeper相关
fedorafrog
这个作者很懒,什么都没留下…
展开
-
ZooKeeper实战(一)master选举
简介考虑7*24小时向外提供服务的系统,不能有单点故障,于是我们使用集群,采用的是Master+Slave。集群中有一台主机和多台备机,由主机向外提供服务,备机监听主机状态,一旦主机宕机,备机必需迅速接管主机继续向外提供服务。在这个过程中,从备机选出一台机作为主机的过程,就是Master选举。架构图左边是ZooKeeper集群,右边是3台工作服务器。工作服务器启动时,会去ZooKe...转载 2020-01-06 10:56:59 · 703 阅读 · 0 评论 -
ZooKeeper一致性协议Zab协议
什么是Zab协议Zab协议 的全称是Zookeeper Atomic Broadcast(Zookeeper原子广播)。Zookeeper 是通过 Zab 协议来保证分布式事务的最终一致性。 Zab协议是为分布式协调服务Zookeeper专门设计的一种 支持崩溃恢复 的 原子广播协议 ,是Zookeeper保证数据一致性的核心算法。Zab借鉴了Paxos算法,但又不像Paxos那样,...转载 2020-01-04 14:14:08 · 226 阅读 · 0 评论 -
ZooKeeper Paxos算法原理
从上一篇我们了解了2PC和3PC之后,我们可以发现,无论是二阶段提交还是三阶段提交都无法彻底解决分布式的一致性问题以及无法解决太过保守及容错性不好。Google Chubby的作者Mike Burrows说过,世上只有一种一致性算法,那就是Paxos,所有其他一致性算法都是Paxos算法的不完整版。Paxos算法是公认的晦涩,很难可能能将清楚,但是工程上也很难实现,所以有很多Paxos算法的工程实...转载 2020-01-04 13:50:57 · 222 阅读 · 0 评论 -
ZooKeeper请求处理流程详细
1. 会话创建请求Zookeeper服务端对于会话创建的处理,大体可以分为请求接收、会话创建、预处理、事务处理、事务应用和会话响应六大环节,其大体流程如下1.1 请求接收I/O层接收来自客户端的请求。NIOServerCnxn维护每一个客户端连接,客户端与服务器端的所有通信都是由NIOServerCnxn负责,其负责统一接收来自客户端的所有请求,并将请求内容从底层网络I/O中完整地...转载 2020-01-04 10:14:22 · 1776 阅读 · 0 评论 -
ZooKeeper入门
ZooKeeper是一种用于分布式应用系统的分布式开源协调服务中间件。主要是用来解决分布式应用中经常遇到的一些问题。官网地址:http://zookeeper.apache.org/doc/current/zookeeperOver.html设计目标简单的数据模型 高可靠 有序 高性能简单的数据模型zk允许各分布式应用通过一个共享的命名空间相互联系,该命名空间类似于一个标准...转载 2020-01-04 09:56:56 · 216 阅读 · 0 评论 -
zk选举的FastLeaderElection实现(一)
一个zookeeper集群中,有一个处于leader身份的节点,其他的节点都是flower状态。那么一个leader是怎么产生的呢?这就是zookeeper中的选举规则,默认的选举规则称为:FastLeaderELection(还有另外的选举算法,实际上它们的核心思想都是一样的)选举算法的中心思想这里我们使用一张过程图和文字相结合的方式对FastLeaderELection选举算法进行描述...转载 2020-01-04 09:56:42 · 222 阅读 · 0 评论 -
zk选举的FastLeaderElection实现(二)
1. 前言前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举。2. Leader选举2.1 关键变量2.1.1角色LOOKING:竞选者 OBSERVING:观察者 FOLLOWING:跟随者 LEADER:领导者2.1.2 投票信息logicalclock(electionE...转载 2020-01-04 09:56:25 · 211 阅读 · 0 评论 -
ZooKeeper通信模式
1. 通信架构在Zookeeper整个系统中,有3中角色的服务,client、Follower、leader。其中client负责发起应用的请求,Follower接受client发起的请求,参与事务的确认过程,在leader crash后的leader选择。而leader主要承担事务的协调,当然leader也可以承担接收客户请求的功能,为了方便描述,后面的描述都是client与Follower...转载 2020-01-04 09:54:19 · 495 阅读 · 0 评论