zk抢主】的更多相关文章

package com.autonavi.tinfo.t1.traffic.pub.openlr.util; import java.util.Collections;import java.util.List;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;import java.util…
一.需求 在主从结构的集群中,我们假设硬件机器是很脆弱的,随时可能会宕机,当master挂掉之后需要从slave中选出一个节点作为新的master,使用zookeeper可以很简单的实现集群选主功能. 二.分析 下面为了方便叙述,将使用更通用的技术术语,即使用leader表示master,使用follower表示slave. 集群选主涉及到两个问题: 1. 谁来做leader 2. leader挂掉了怎么被follower感知到 首先是第一个问题,谁来做leader,其实可以将这个问题看做是多线…
通常zookeeper在分布式服务中作为注册中心,实际上它还可以办到很多事.比如分布式队列.分布式锁 由于公司服务中有很多定时任务,而这些定时任务由于一些历史原因暂时不能改造成框架调用 于是想到用zookeeper特性来实现 首先我们先了解下zk工作原理 结构图解释:左侧树状结构为zookeeper集群,右侧为程序服务器.所有的服务器在启动的时候,都会订阅zookeeper中master节点的删除事件,以便在主服务器挂掉的时候进行抢主操作:所有服务器同时会在servers节点下注册一个临时节点(…
对于zookeeper这种东西,仅仅知道怎么安装是远远不够的,至少要对其几个典型的应用场景进行了解,才能比较全面的知道zk究竟能干啥,怎么玩儿,以后的日子里才能知道这货如何能为我所用.于是,有了如下的学习: 我们知道zookeeper可以用于搭建高可用服务框架,主要先看以下几个应用场景:1. master的选举基本思路和编码实现2. 数据的发布和订阅3. 软负载均衡4. 分布式队列5. 分布式锁6. 命名服务 目前zookeeper常用的开发包有zkclient跟curator,后者更为方便,日…
Curator是Netflix公司开源的一个Zookeeper客户端,与Zookeeper提供的原生客户端相比,Curator的抽象层次更高,简化了Zookeeper客户端的开发量. 1.引入依赖: <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>4.0.0</versio…
在上一篇文章中我们大致浏览了zookeeper的启动过程,并且提到在Zookeeper的启动过程中leader选举是非常重要而且最复杂的一个环节.那么什么是leader选举呢?zookeeper为什么需要leader选举呢?zookeeper的leader选举的过程又是什么样子的?本文的目的就是解决这三个问题. 首先我们来看看什么是leader选举.其实这个很好理解,leader选举就像总统选举一样,每人一票,获得多数票的人就当选为总统了.在zookeeper集群中也是一样,每个节点都会投票,如…
master选举 1.使用场景及结构 现在很多时候我们的服务需要7*24小时工作,假如一台机器挂了,我们希望能有其它机器顶替它继续工作.此类问题现在多采用master-salve模式,也就是常说的主从模式,正常情况下主机提供服务,备机负责监听主机状态,当主机异常时,可以自动切换到备机继续提供服务(这里有点儿类似于数据库主库跟备库,备机正常情况下只监听,不工作),这个切换过程中选出下一个主机的过程就是master选举. 对于以上提到的场景,传统的解决方式是采用一个备用节点,这个备用节点定期给当前主…
原文地址: http://www.cnblogs.com/nevermorewang/p/5611807.html 选主原理介绍:zookeeper的节点有两种类型,持久节点跟临时节点.临时节点有个特性,就是如果注册这个节点的机器失去连接(通常是宕机),那么这个节点会被zookeeper删除.选主过程就是利用这个特性,在服务器启动的时候,去zookeeper特定的一个目录下注册一个临时节点(这个节点作为master,谁注册了这个节点谁就是master),注册的时候,如果发现该节点已经存在,则说明…
使用ZK实现分布式独占锁, 原理就是利用ZK同级节点的唯一性. Curator框架下的一些分布式锁工具InterProcessMutex:分布式可重入排它锁 InterProcessSemaphoreMutex:分布式排它锁 InterProcessReadWriteLock:分布式读写锁 使用 Zookeeper 实现 leader 选举 Leader Latch 参与选举的所有节点,会创建一个顺序节点,其中最小的 节点会设置为 master 节点, 没抢到 Leader 的节点都监听前一个节…
官网上已经给出了zk的几种典型应用场景,原话是这么说的: It exposes a simple set of primitives that distributed applications can build upon to implement higher level services for synchronization, configuration maintenance, and groups and naming. 它提供了一组简单的原语,让分布式应用可以实现更高层次的服务,比如…