zookeeper
胡jj
如此生活过三十年,直到大厦崩塌。
展开
-
curator操作zookeeper常用API整理
需要引入maven依赖 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> </d原创 2018-11-29 09:28:59 · 346 阅读 · 0 评论 -
zookeeper的ZAB协议-崩溃恢复与消息广播模式
参考从《paxos到zookeeper分布式一致性原理与实现》书中介绍过,zookeeper所使用的一致性协议与paxos一致性协议还有所不同,paxos一致性协议在未弄懂之前理解与实现比都较复杂,具体可以参考相关资料,这里不并叙述。ZAB协议包括两种基本模式,崩溃恢复,消息广播崩溃恢复模式,当一台leader服务器崩溃了之后,ZAB协议就会进入崩溃恢复模式,在所有的follower服...翻译 2018-11-26 14:57:48 · 1213 阅读 · 1 评论 -
zookeeper客户端之Curator选举案例以及实际场景案例
背景: 在一个小规模集群当中有十台服务器,我们需要从另外一个集群的消息获取队列到本地的队列(假设有一个外部的ActiveMQ集群),由于另外一个集群当中的消息队列是发布订阅模型,那么如果我们集群中10台服务器都定时任务去访问那么就会有重复的消息放到本地队列,那么这个时候我们只需要其中一台服务器去获取外部集群中的消息放到本地队列就行解决方案: 1. 通常在我遇...原创 2018-11-28 11:45:24 · 335 阅读 · 0 评论 -
zookeeper客户端之Curator实现分布式锁案例以及实际场景案例
背景: 背景很多,比如集群中多个节点生成某个序列ID, 多个节点同时在自身节点做某些事,但是这件事只能同时只有一个节点去做,网上看过一些案例,比如火车票,库存减少等很多案例,还有一种极端的情况,比如有两个内部的系统之间服务的交互,在A系统开启线程调用B系统之后执行下面逻辑,然而B系统中有的逻辑要等A系统执行完之后再执行,有的A系统要等B系统执行完部分逻辑在执行,以此交替,这种非常...原创 2018-11-28 17:23:26 · 401 阅读 · 0 评论 -
zookeeper的集群内部选举leader
zookeeper选举leader的情形有两种,第一种是集群刚启动的时候,第二种是集群运行中leader脑裂,导致集群中半数follower与leader心跳检测不到,这些情况下需要选举leader第一种情形,集群刚启动的时候选举leader流程,我们先假设集群中又5台zk服务器,编号分别为1, 2, 3, 4, 5,根据zk的快速选举过程fastleaderelection,需要半数达成一致...原创 2018-12-19 10:50:32 · 1256 阅读 · 0 评论