【Zookeeper系列】构建ZooKeeper应用(转)
原文地址:https://www.cnblogs.com/sunddenly/p/4064992.html
一、配置服务
配置服务是分布式应用所需要的基本服务之一,它使集群中的机器可以共享配置信息中那些公共的部分。简单地说,ZooKeeper可以作为一个具有高可用性的配置存储器,允许分布式应用的参与者检索和更新配置文件。使用ZooKeeper中的观察机制,可以建立一个活跃的配置服务,使那些感兴趣的客户端能够获得配置信息修改的通知。
下面来编写一个这样的服务。我们通过两个假设来简化所需实现的服务(稍加修改就可以取消这两个假设)。
第一,我们唯一需要存储的配置数据是字符串,关键字是znode的路径,因此我们在每个znode上存储了一个键/值对。
第二,在任何时候只有一个客户端会执行更新操作。
除此之外,这个模型看起来就像是有一个主人(类似于HDFS中的namenode)在更新信息,而他的工人则需要遵循这些信息。
在名为ActiveKeyValueStore的类中编写了如下代码:
package org.zk; import java.nio.charset.Charset; import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.data.Stat; public class ActiveKeyValueStore extends ConnectionWatcher {
private static final Charset CHARSET=Charset.forName("UTF-8");
public void write(String path,String value) throws KeeperException, InterruptedException {
Stat stat = zk.exists(path, false);
if(stat==null){
zk.create(path, value.getBytes(CHARSET),Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
}else{
zk.setData(path, value.getBytes(CHARSET),-1);
}
}
public String read(String path,Watcher watch) throws KeeperException, InterruptedException{
byte[] data = zk.getData(path, watch, null);
return new String(data,CHARSET); } }
write()方法的任务是将一个关键字及其值写到ZooKeeper。它隐藏了创建一个新的znode和用一个新值更新现有znode之间的区别,而是使用exists操作来检测znode是否存在,然后再执行相应的操作。其他值得一提的细节是需要将字符串值转换为字节数组,因为我们只用了UTF-8编码的getBytes()方法。☆☆☆
read()方法的任务是读取一个节点的配置属性。ZooKeeper的getData()方法有三个参数:
(1)路径
(2)一个观察对象
(3)一个Stat对象
Stat对象由getData()方法返回的值填充,用来将信息回传给调用者。通过这个方法,调用者可以获得一个znode的数据和元数据,但在这个例子中,由于我们对元数据不感兴趣,因此将Stat参数设为null。
为了说明ActiveKeyValueStore的用法,我们编写了一个用来更新配置属性值的类ConfigUpdater,如代码1.1所示。
代码1.1 用于随机更新ZooKeeper中的属性
package org.zk; import java.io.IOException;
import java.util.Random;
import java.util.concurrent.TimeUnit; import org.apache.zookeeper.KeeperException; public class ConfigUpdater { public static final String PATH="/config"; private ActiveKeyValueStore store;
private Random random=new Random(); public ConfigUpdater(String hosts) throws IOException, InterruptedException {
store = new ActiveKeyValueStore();
store.connect(hosts);
}
public void run() throws InterruptedException, KeeperException{
while(true){
String value=random.nextInt(100)+"";
store.write(PATH, value);
System.out.printf("Set %s to %s\n",PATH,value);
TimeUnit.SECONDS.sleep(random.nextInt(100)); }
}
public static void main(String[] args) throws IOException, InterruptedException, KeeperException {
ConfigUpdater configUpdater = new ConfigUpdater(args[0]);
configUpdater.run();
}
}
这个程序很简单,ConfigUpdater中定义了一个ActiveKeyValueStore,它在ConfigUpdater的构造函数中连接到ZooKeeper。run()方法永远在循环,在随机时间以随机值更新/config znode。
作为配置服务的用户,ConfigWatcher创建了一个ActiveKeyValueStore对象store,并且在启动之后通过displayConfig()调用了store的read()方法,显示它所读到的配置信息的初始值,并将自身作为观察传递给store。当节点状态发生变化时,再次通过displayConfig()显示配置信息,并再次将自身作为观察传递给store,参见代码1.2:
例1.2 该用应观察ZooKeeper中属性的更新情况,并将其打印到控制台
package org.zk; import java.io.IOException; import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.Event.EventType; public class ConfigWatcher implements Watcher{
private ActiveKeyValueStore store; @Override
public void process(WatchedEvent event) {
if(event.getType()==EventType.NodeDataChanged){
try{
dispalyConfig();
}catch(InterruptedException e){
System.err.println("Interrupted. exiting. ");
Thread.currentThread().interrupt();
}catch(KeeperException e){
System.out.printf("KeeperException锛?s. Exiting.\n", e);
} } }
public ConfigWatcher(String hosts) throws IOException, InterruptedException {
store=new ActiveKeyValueStore();
store.connect(hosts);
}
public void dispalyConfig() throws KeeperException, InterruptedException{
String value=store.read(ConfigUpdater.PATH, this);
System.out.printf("Read %s as %s\n",ConfigUpdater.PATH,value);
} public static void main(String[] args) throws IOException, InterruptedException, KeeperException {
ConfigWatcher configWatcher = new ConfigWatcher(args[0]);
configWatcher.dispalyConfig();
//stay alive until process is killed or Thread is interrupted
Thread.sleep(Long.MAX_VALUE);
}
}
当ConfigUpdater更新znode时,ZooKeeper产生一个类型为EventType.NodeDataChanged的事件,从而触发观察。ConfigWatcher在它的process()方法中对这个事件做出反应,读取并显示配置的最新版本。由于观察仅发送单次信号,因此每次我们调用ActiveKeyValueStore的read()方法时,都将一个新的观察告知ZooKeeper来确保我们可以看到将来的更新。但是,我们还是不能保证接收到每一个更新,因为在收到观察事件通知与下一次读之间,znode可能已经被更新过,而且可能是很多次,由于客户端在这段时间没有注册任何观察,因此不会收到通知。对于示例中的配置服务,这不是问题,因为客户端只关心属性的最新值,最新值优先于之前的值。但是,一般情况下,这个潜在的问题是不容忽视的。
让我们看看如何使用这个程序。在一个终端窗口中运行ConfigUpdater,然后在另一个客户端运行ConfigWatcher,我们可以预先分别在两个客户端输入命令,先不按回车,等两个客户端的命令输入好后,先在运行ConfigUpdater的客户端按回车,再在另一个客户端按回车,运行结果如下:
aaarticlea/png;base64,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" alt="" />
二、可恢复的ZooKeeper应用
关于分布式计算的第一个误区是“网络是可靠的”。按照他们的观点,程序总是有一个可靠的网络,因此当程序运行在真正的网络中时,往往会出现各种备样的故障。让我们看看各种可能的故障模式,以及能够解决故障的措施,使我们的程序在面对故障时能够及时复原。
2.1 ZooKeeper异常
在Java API中的每一个ZooKeeper操作都在其throws子句中声明了两种类型的异常,分别是InterruptedException和KeeperException。
(一)InterruptedException异常
如果操作被中断,则会有一个InterruptedException异常被抛出。在Java语言中有一个取消阻塞方法的标准机制,即针对存在阻塞方法的线程调用interrupt()。一个成功的取消操作将产生一个InterruptedException异常。
ZooKeeper也遵循这一机制,因此你可以使用这种方法来取消一个ZooKeeper操作。使用了ZooKeeper的类或库通常会传播InterruptedException异常,使客户端能够取消它们的操作。InterruptedException异常并不意味着有故障,而是表明相应的操作已经被取消,所以在配置服务的示例中,可以通过传播异常来中止应用程序的运行。
(二)KeeperException异常
(1) 如果ZooKeeper服务器发出一个错误信号或与服务器存在通信问题,抛出的则是KeeperException异常。
①针对不同的错误情况,KeeperException异常存在不同的子类。
例如: KeeperException.NoNodeException是KeeperException的一个子类,如果你试图针对一个不存在的znode执行操作,抛出的则是该异常。
②每一个KeeperException异常的子类都对应一个关于错误类型信息的代码。
例如: KeeperException.NoNodeException异常的代码是KeeperException.Code.NONODE
(2) 有两种方法被用来处理KeeperException异常:
①捕捉KeeperException异常,并且通过检测它的代码来决定采取何种补救措施;
②另一种是捕捉等价的KeeperException子类,并且在每段捕捉代码中执行相应的操作。
(3) KeeperException异常分为三大类
① 状态异常
当一个操作因不能被应用于znode树而导致失败时,就会出现状态异常。状态异常产生的原因通常是在同一时间有另外一个进程正在修改znode。例如,如果一个znode先被另外一个进程更新了,根据版本号执行setData操作的进程就会失败,并收到一个KeeperException.BadVersionException异常,这是因为版本号不匹配。程序员通常都知道这种冲突总是存在的,也都会编写代码来进行处理。
一些状态异常会指出程序中的错误,例如KeeperException.NoChildrenForEphemeralsException异常,试图在短暂znode下创建子节点时就会抛出该异常。
② 可恢复异常
可恢复的异常是指那些应用程序能够在同一个ZooKeeper会话中恢复的异常。一个可恢复的异常是通过KeeperException.ConnectionLossException来表示的,它意味着已经丢失了与ZooKeeper的连接。ZooKeeper会尝试重新连接,并且在大多数情况下重新连接会成功,并确保会话是完整的。
但是ZooKeeper不能判断与KeeperException.ConnectionLossException异常相关的操作是否成功执行。这种情况就是部分失败的一个例子。这时程序员有责任来解决这种不确定性,并且根据应用的情况来采取适当的操作。在这一点上,就需要对“幂等”(idempotent)操作和“非幂等”(Nonidempotent)操作进行区分。幂等操作是指那些一次或多次执行都会产生相同结果的操作,例如读请求或无条件执行的setData操作。对于幂等操作,只需要简单地进行重试即可。对于非幂等操作,就不能盲目地进行重试,因为它们多次执行的结果与一次执行是完全不同的。程序可以通过在znode的路径和它的数据中编码信息来检测是否非幂等操怍的更新已经完成。
③不可恢复的异常
在某些情况下,ZooKeeper会话会失效——也许因为超时或因为会话被关闭,两种情况下都会收到KeeperException.SessionExpiredException异常,或因为身份验证失败,KeeperException.AuthFailedException异常。无论上述哪种情况,所有与会话相关联的短暂znode都将丢失,因此应用程序需要在重新连接到ZooKeeper之前重建它的状态。
2.2 可靠地服务配置
首先我们先回顾一下ActivityKeyValueStore的write()的方法,他由一个exists操作紧跟着一个create操作或setData操作组成:
public class ActiveKeyValueStore extends ConnectionWatcher {
private static final Charset CHARSET=Charset.forName("UTF-8");
public void write(String path,String value) throws KeeperException, InterruptedException {
Stat stat = zk.exists(path, false);
if(stat==null){
zk.create(path, value.getBytes(CHARSET),Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
}else{
zk.setData(path, value.getBytes(CHARSET),-1);
}
}
public String read(String path,Watcher watch) throws KeeperException, InterruptedException{
byte[] data = zk.getData(path, watch, null);
return new String(data,CHARSET); } }
作为一个整体,write()方法是一个“幂等”操作,所以我们可以对他进行无条件重试。我们新建一个类ChangedActiveKeyValueStore,代码如下:
package org.zk; import java.nio.charset.Charset;
import java.util.concurrent.TimeUnit; import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.data.Stat; public class ChangedActiveKeyValueStore extends ConnectionWatcher{
private static final Charset CHARSET=Charset.forName("UTF-8");
private static final int MAX_RETRIES = 5;
private static final long RETRY_PERIOD_SECONDS = 5; public void write(String path,String value) throws InterruptedException, KeeperException{
int retries=0;
while(true){
try {
Stat stat = zk.exists(path, false);
if(stat==null){
zk.create(path, value.getBytes(CHARSET),Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
}else{
zk.setData(path, value.getBytes(CHARSET),stat.getVersion());
}
} catch (KeeperException.SessionExpiredException e) {
throw e;
} catch (KeeperException e) {
if(retries++==MAX_RETRIES){
throw e;
}
//sleep then retry
TimeUnit.SECONDS.sleep(RETRY_PERIOD_SECONDS);
}
}
}
public String read(String path,Watcher watch) throws KeeperException, InterruptedException{
byte[] data = zk.getData(path, watch, null);
return new String(data,CHARSET);
}
}
在该类中,对前面的write()进行了修改,该版本的wirte()能够循环执行重试。其中设置了重试的最大次数MAX_RETRIES和两次重试之间的间隔RETRY_PERIOD_SECONDS.
我们再新建一个类ResilientConfigUpdater,该类对前面的ConfigUpdater进行了修改,代码如下:
package org.zk; import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Random;
import java.util.concurrent.TimeUnit; import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.KeeperException.SessionExpiredException;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.data.Stat; public class ResilientConfigUpdater extends ConnectionWatcher{
public static final String PATH="/config";
private ChangedActiveKeyValueStore store;
private Random random=new Random(); public ResilientConfigUpdater(String hosts) throws IOException, InterruptedException {
store=new ChangedActiveKeyValueStore();
store.connect(hosts);
}
public void run() throws InterruptedException, KeeperException{
while(true){
String value=random.nextInt(100)+"";
store.write(PATH,value);
System.out.printf("Set %s to %s\n",PATH,value);
TimeUnit.SECONDS.sleep(random.nextInt(10));
}
} public static void main(String[] args) throws Exception {
while(true){
try {
ResilientConfigUpdater configUpdater = new ResilientConfigUpdater(args[0]);
configUpdater.run();
}catch (KeeperException.SessionExpiredException e) {
// start a new session
}catch (KeeperException e) {
// already retried ,so exit
e.printStackTrace();
break;
}
}
}
}
在这段代码中没有对KeepException.SeeionExpiredException异常进行重试,因为一个会话过期时,ZooKeeper对象会进入CLOSED状态,此状态下它不能进行重试连接。我们只能将这个异常简单抛出并让拥有着创建一个新实例,以重试整个write()方法。一个简单的创建新实例的方法是创建一个新的ResilientConfigUpdater用于恢复过期会话。
处理会话过期的另一种方法是在观察中(在这个例子中应该是ConnectionWatcher)寻找类型为ExpiredKeepState,然后再找到的时候创建一个新连接。即使我们收到KeeperException.SessionExpiredEception异常,这种方法还是可以让我们在write()方法内不断重试,因为连接最终是能够重新建立的。不管我们采用何种机制从过期会话中恢复,重要的是,这种不同于连接丢失的故障类型,需要进行不同的处理。
注意:实际上,这里忽略了另一种故障模式。当ZooKeeper对象被创建时,他会尝试连接另一个ZooKeeper服务器。如果连接失败或超时,那么他会尝试连接集合体中的另一台服务器。如果在尝试集合体中的所有服务器之后仍然无法建立连接,它会抛出一个IOException异常。由于所有的ZooKeeper服务器都不可用的可能性很小,所以某些应用程序选择循环重试操作,直到ZooKeeper服务为止。
这仅仅是一种重试处理策略,还有许多其他处理策略,例如使用“指数返回”,每次将重试的间隔乘以一个常数。Hadoop内核中org.apache.hadoop.io.retry包是一组工具,用于可以重用的方式将重试逻辑加入代码,因此他对于构建ZooKeeper应用非常有用。
三、锁服务
3.1分布式锁概述
分布式锁在一组进程之间提供了一种互斥机制。在任何时刻,在任何时刻只有一个进程可以持有锁。分布式锁可以在大型分布式系统中实现领导者选举,在任何时间点,持有锁的那个进程就是系统的领导者。
注意:不要将ZooKeeper自己的领导者选举和使用了ZooKeeper基本操作实现的一般领导者选混为一谈。ZooKeeper自己的领导者选举机制是对外不公开的,我们这里所描述的一般领导者选举服务则不同,他是对那些需要与主进程保持一致的分布式系统所设计的。
(1) 为了使用ZooKeeper来实现分布式锁服务,我们使用顺序znode来为那些竞争锁的进程强制排序。
思路很简单:
① 首先指定一个作为锁的znode,通常用它来描述被锁定的实体,称为/leader;
② 然后希望获得锁的客户端创建一些短暂顺序znode,作为锁znode的子节点。
③ 在任何时间点,顺序号最小的客户端将持有锁。
例如,有两个客户端差不多同时创建znode,分别为/leader/lock-1和/leader/lock-2,那么创建/leader/lock-1的客户端将会持有锁,因为它的znode顺序号最小。ZooKeeper服务是顺序的仲裁者,因为它负责分配顺序号。
④ 通过删除znode /leader/lock-l即可简单地将锁释放;
⑤ 另外,如果客户端进程死亡,对应的短暂znode也会被删除。
⑥ 接下来,创建/leader/lock-2的客户端将持有锁,因为它顺序号紧跟前一个。
⑦ 通过创建一个关于znode删除的观察,可以使客户端在获得锁时得到通知。
(2) 如下是申请获取锁的伪代码。
①在锁znode下创建一个名为lock-的短暂顺序znode,并且记住它的实际路径名(create操作的返回值)。
②查询锁znode的子节点并且设置一个观察。
③如果步骤l中所创建的znode在步骤2中所返回的所有子节点中具有最小的顺序号,则获取到锁。退出。
④等待步骤2中所设观察的通知并且转到步骤2。
3.2 当前问题与方案
3.2.1 羊群效应
(1) 问题
虽然这个算法是正确的,但还是存在一些问题。第一个问题是这种实现会受到“羊群效应”(herd effect)的影响。考虑有成百上千客户端的情况,所有的客户端都在尝试获得锁,每个客户端都会在锁znode上设置一个观察,用于捕捉子节点的变化。每次锁被释放或另外一个进程开始申请获取锁的时候,观察都会被触发并且每个客户端都会收到一个通知。 “羊群效应“就是指大量客户端收到同一事件的通知,但实际上只有很少一部分需要处理这一事件。在这种情况下,只有一个客户端会成功地获取锁,但是维护过程及向所有客户端发送观察事件会产生峰值流量,这会对ZooKeeper服务器造成压力。
(2) 方案解决方案
为了避免出现羊群效应,我们需要优化通知的条件。关键在于只有在前一个顺序号的子节点消失时才需要通知下一个客户端,而不是删除(或创建)任何子节点时都需要通知。在我们的例子中,如果客户端创建了znode /leader/lock-1、/leader/lock-2和/leader/lock-3,那么只有当/leader/lock-2消失时才需要通知/leader/lock-3对照的客户端;/leader/lock-1消失或有新的znode /leader/lock-4加入时,不需要通知该客户端。
3.2.2 可恢复的异常
(1) 问题
这个申请锁的算法目前还存在另一个问题,就是不能处理因连接丢失而导致的create操作失败。如前所述,在这种情况下,我们不知道操作是成功还是失败。由于创建一个顺序znode是非幂等操作,所以我们不能简单地重试,因为如果第一次创建已经成功,重试会使我们多出一个永远删不掉的孤儿zriode(至少到客户端会话结束前)。不幸的结果是将会出现死锁。
(2) 解决方案
问题在于,在重新连接之后客户端不能够判断它是否已经创建过子节点。解决方案是在znode的名称中嵌入一个ID,如果客户端出现连接丢失的情况,重新连接之后它便可以对锁节点的所有于节点进行检查,看看是否有子节点的名称中包含其ID。如果有一个子节点的名称包含其ID,它便知道创建操作已经成功,不需要再创建子节点。如果没有子节点的名称中包含其ID,则客户端可以安全地创建一个新的顺序子节点。
客户端会话的ID是一个长整数,并且在ZooKeeper服务中是唯一的,因此非常适合在连接丢失后用于识别客户端。可以通过调用Java ZooKeeper类的getSessionld()方法来获得会话的ID。
在创建短暂顺序znode时应当采用lock-<sessionld>-这样的命名方式,ZooKeeper在其尾部添加顺序号之后,znode的名称会形如lock-<sessionld>-<sequenceNumber>。由于顺序号对于父节点来说是唯一的,但对于子节点名并不唯一,因此采用这样的命名方式可以诖子节点在保持创建顺序的同时能够确定自己的创建者。
3.2.3 不可恢复的异常
如果一个客户端的ZooKeeper会话过期,那么它所创建的短暂znode将会被删除,已持有的锁会被释放,或是放弃了申请锁的位置。使用锁的应用程序应当意识到它已经不再持有锁,应当清理它的状态,然后通过创建并尝试申请一个新的锁对象来重新启动。注意,这个过程是由应用程序控制的,而不是锁,因为锁是不能预知应用程序需要如何清理自己的状态。
四、ZooKeeper实现共享锁
实现正确地实现一个分布式锁是一件棘手的事,因为很难对所有类型的故障都进行正确的解释处理。ZooKeeper带有一个JavaWriteLock,客户端可以很方便地使用它。更多分布式数据结构和协议例如“屏障”(bafrier)、队列和两阶段提交协议。有趣的是它们都是同步协议,即使我们使用异步ZooKeeper基本操作(如通知)来实现它们。使用ZooKeeper可以实现很多不同的分布式数据结构和协议,ZooKeeper网站(http://hadoop.apache.org/zookeeper/)提供了一些用于实现分布式数据结构和协议的伪代码。ZooKeeper本身也带有一些棕准方法的实现,放在安装位置下的recipes目录中。
4.1 场景描述
大家也许都很熟悉了多个线程或者多个进程间的共享锁的实现方式了,但是在分布式场景中我们会面临多个Server之间的锁的问题。
假设有这样一个场景:两台server :serverA,serverB需要在C机器上的/usr/local/a.txt文件上进行写操作,如果两台机器同时写该文件,那么该文件的最终结果可能会产生乱序等问题。最先能想到的是serverA在写文件前告诉ServerB “我要开始写文件了,你先别写”,等待收到ServerB的确认回复后ServerA开始写文件,写完文件后再通知ServerB“我已经写完了”。假设在我们场景中有100台机器呢,中间任意一台机器通信中断了又该如何处理?容错和性能问题呢?要能健壮,稳定,高可用并保持高性能,系统实现的复杂度比较高,从头开发这样的系统代价也很大。幸运的是,我们有了基于googlechubby原理开发的开源的ZooKeeper系统。接下来本文将介绍两种ZooKeeper实现分布式共享锁的方法。
4.2 利用节点名称的唯一性来实现共享锁
ZooKeeper表面上的节点结构是一个和unix文件系统类似的小型的树状的目录结构,ZooKeeper机制规定:同一个目录下只能有一个唯一的文件名。
例如:我们在Zookeeper目录/test目录下创建,两个客户端创建一个名为lock节点,只有一个能够成功。
(1) 算法思路:利用名称唯一性,加锁操作时,只需要所有客户端一起创建/Leader/lock节点,只有一个创建成功,成功者获得锁。解锁时,只需删除/test/Lock节点,其余客户端再次进入竞争创建节点,直到所有客户端都获得锁。
基于以上机制,利用节点名称唯一性机制的共享锁算法流程如图所示:
aaarticlea/png;base64,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" alt="" width="345" height="477" />
4.3 利用顺序节点实现共享锁
首先介绍一下,Zookeeper中有一种节点叫做顺序节点,故名思议,假如我们在/lock/目录下创建节3个点,ZooKeeper集群会按照提起创建的顺序来创建节点,节点分别为/lock/0000000001、/lock/0000000002、/lock/0000000003。
ZooKeeper中还有一种名为临时节点的节点,临时节点由某个客户端创建,当客户端与ZooKeeper集群断开连接,。则该节点自动被删除。
算法思路:对于加锁操作,可以让所有客户端都去/lock目录下创建临时、顺序节点,如果创建的客户端发现自身创建节点序列号是/lock/目录下最小的节点,则获得锁。否则,监视比自己创建节点的序列号小的节点(当前序列在自己前面一个的节点),进入等待。解锁操作,只需要将自身创建的节点删除即可。具体算法流程如下图所示:
aaarticlea/png;base64,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B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94COgJvAQA0B94CGtPZ2cmORd4SXgIAgL4BbwGNaWtr83q9N27c+FHgrRs3bpw6dermzZuGDg0AMByAt4D2FBcX8xJqamqMHhcAYDgAbwHtuXz5skhaCQkJbW1tRo8LADAcgLeALixcuBCbLQCAHsBbQBfq6uqw2QIA6AG8BXShra0Nmy0AgB7AW0Av6G9nYLMFANAWeAvoBf3tDGy2AADaAm8BHcnKysJmCwCgLfCWWnKyFki/kwSAHuTl5Rn95x2AwQu8pRae529degNBBiA8/l1HAAIDb6mF5/lbv34DQQYgPM/7/f4//vGPRv+pB2AwAm+phef5W7+uGQxxpdiObs02fBiDM1+d9Bg+hv6Hesvv9xv9px6AwQi8pZbB4y1ubKgrxWb4MPocT65Dwbufv1nkiHv6ZuMB2as3Gw844p52xD3tzpwjG25sqCPu6f4P8ujWbANfMrwFgALwlloGibcaq9ZzY0NlLylvNX5/tsw2iXt3zxrDH6HSncmNDfXkOmRD3dPncQZ6Rio8qedcKTbbJE5abpvE2SZxle5MQ14RvAWAAvCWWgzx1udvFoniiHvalWKTlr+7Zw03NtQ2iQvUFfXB78+W6TdaKqTP3yzq8aECqbfHqz3GNonrcQAa3k6nwFsAKABvqYXn+VsXDw1wGqvcnx8uYnl392rOFPru7tXCQlFuNlTKdsWZQm0Wjh57ch2cKfTzw0XajtaT6yCE9Njt54eLOFNo367SuJJtrmSb/OeEvXwuNbcb+MBbACgAb6nFEG9J12t35hx2arNwle7Faho2VrkJIUe3uuipSsH0NgPmLYXYLBy8BcDwBt5Si+Heaqxyi1ZY9XsLV7JN2HYweEvp51taeOvzw0VCxysPxtiZ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" alt="" width="425" height="656" />
4.4 ZooKeeper提供的一个写锁实现
按照ZooKeeper提供的分布式锁的伪代码,实现了一个分布式锁的简单测试代码如下:
(1)分布式锁,实现了Lock接口 DistributedLock.java
package com.concurrent; import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock; import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooDefs;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat; /**
DistributedLock lock = null;
try {
lock = new DistributedLock("127.0.0.1:2182","test");
lock.lock();
//do something...
} catch (Exception e) {
e.printStackTrace();
}
finally {
if(lock != null)
lock.unlock();
}
* @author xueliang
*
*/
public class DistributedLock implements Lock, Watcher{
private ZooKeeper zk;
private String root = "/locks";//根
private String lockName;//竞争资源的标志
private String waitNode;//等待前一个锁
private String myZnode;//当前锁
private CountDownLatch latch;//计数器
private int sessionTimeout = 30000;
private List<Exception> exception = new ArrayList<Exception>(); /**
* 创建分布式锁,使用前请确认config配置的zookeeper服务可用
* @param config 127.0.0.1:2181
* @param lockName 竞争资源标志,lockName中不能包含单词lock
*/
public DistributedLock(String config, String lockName){
this.lockName = lockName;
// 创建一个与服务器的连接
try {
zk = new ZooKeeper(config, sessionTimeout, this);
Stat stat = zk.exists(root, false);
if(stat == null){
// 创建根节点
zk.create(root, new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
}
} catch (IOException e) {
exception.add(e);
} catch (KeeperException e) {
exception.add(e);
} catch (InterruptedException e) {
exception.add(e);
}
} /**
* zookeeper节点的监视器
*/
public void process(WatchedEvent event) {
if(this.latch != null) {
this.latch.countDown();
}
} public void lock() {
if(exception.size() > 0){
throw new LockException(exception.get(0));
}
try {
if(this.tryLock()){
System.out.println("Thread " + Thread.currentThread().getId() + " " +myZnode + " get lock true");
return;
}
else{
waitForLock(waitNode, sessionTimeout);//等待锁
}
} catch (KeeperException e) {
throw new LockException(e);
} catch (InterruptedException e) {
throw new LockException(e);
}
} public boolean tryLock() {
try {
String splitStr = "_lock_";
if(lockName.contains(splitStr))
throw new LockException("lockName can not contains \\u000B");
//创建临时子节点
myZnode = zk.create(root + "/" + lockName + splitStr, new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.EPHEMERAL_SEQUENTIAL);
System.out.println(myZnode + " is created ");
//取出所有子节点
List<String> subNodes = zk.getChildren(root, false);
//取出所有lockName的锁
List<String> lockObjNodes = new ArrayList<String>();
for (String node : subNodes) {
String _node = node.split(splitStr)[0];
if(_node.equals(lockName)){
lockObjNodes.add(node);
}
}
Collections.sort(lockObjNodes);
System.out.println(myZnode + "==" + lockObjNodes.get(0));
if(myZnode.equals(root+"/"+lockObjNodes.get(0))){
//如果是最小的节点,则表示取得锁
return true;
}
//如果不是最小的节点,找到比自己小1的节点
String subMyZnode = myZnode.substring(myZnode.lastIndexOf("/") + 1);
waitNode = lockObjNodes.get(Collections.binarySearch(lockObjNodes, subMyZnode) - 1);
} catch (KeeperException e) {
throw new LockException(e);
} catch (InterruptedException e) {
throw new LockException(e);
}
return false;
} public boolean tryLock(long time, TimeUnit unit) {
try {
if(this.tryLock()){
return true;
}
return waitForLock(waitNode,time);
} catch (Exception e) {
e.printStackTrace();
}
return false;
} private boolean waitForLock(String lower, long waitTime) throws InterruptedException, KeeperException {
Stat stat = zk.exists(root + "/" + lower,true);
//判断比自己小一个数的节点是否存在,如果不存在则无需等待锁,同时注册监听
if(stat != null){
System.out.println("Thread " + Thread.currentThread().getId() + " waiting for " + root + "/" + lower);
this.latch = new CountDownLatch(1);
this.latch.await(waitTime, TimeUnit.MILLISECONDS);
this.latch = null;
}
return true;
} public void unlock() {
try {
System.out.println("unlock " + myZnode);
zk.delete(myZnode,-1);
myZnode = null;
zk.close();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (KeeperException e) {
e.printStackTrace();
}
} public void lockInterruptibly() throws InterruptedException {
this.lock();
} public Condition newCondition() {
return null;
} public class LockException extends RuntimeException {
private static final long serialVersionUID = 1L;
public LockException(String e){
super(e);
}
public LockException(Exception e){
super(e);
}
} }
(2)并发测试工具 ConcurrentTest.java
package com.concurrent; import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicInteger; /**
ConcurrentTask[] task = new ConcurrentTask[5];
for(int i=0;i<task.length;i++){
task[i] = new ConcurrentTask(){
public void run() {
System.out.println("=============="); }};
}
new ConcurrentTest(task);
* @author xueliang
*
*/
public class ConcurrentTest {
private CountDownLatch startSignal = new CountDownLatch(1);//开始阀门
private CountDownLatch doneSignal = null;//结束阀门
private CopyOnWriteArrayList<Long> list = new CopyOnWriteArrayList<Long>();
private AtomicInteger err = new AtomicInteger();//原子递增
private ConcurrentTask[] task = null; public ConcurrentTest(ConcurrentTask... task){
this.task = task;
if(task == null){
System.out.println("task can not null");
System.exit(1);
}
doneSignal = new CountDownLatch(task.length);
start();
}
/**
* @param args
* @throws ClassNotFoundException
*/
private void start(){
//创建线程,并将所有线程等待在阀门处
createThread();
//打开阀门
startSignal.countDown();//递减锁存器的计数,如果计数到达零,则释放所有等待的线程
try {
doneSignal.await();//等待所有线程都执行完毕
} catch (InterruptedException e) {
e.printStackTrace();
}
//计算执行时间
getExeTime();
}
/**
* 初始化所有线程,并在阀门处等待
*/
private void createThread() {
long len = doneSignal.getCount();
for (int i = 0; i < len; i++) {
final int j = i;
new Thread(new Runnable(){
public void run() {
try {
startSignal.await();//使当前线程在锁存器倒计数至零之前一直等待
long start = System.currentTimeMillis();
task[j].run();
long end = (System.currentTimeMillis() - start);
list.add(end);
} catch (Exception e) {
err.getAndIncrement();//相当于err++
}
doneSignal.countDown();
}
}).start();
}
}
/**
* 计算平均响应时间
*/
private void getExeTime() {
int size = list.size();
List<Long> _list = new ArrayList<Long>(size);
_list.addAll(list);
Collections.sort(_list);
long min = _list.get(0);
long max = _list.get(size-1);
long sum = 0L;
for (Long t : _list) {
sum += t;
}
long avg = sum/size;
System.out.println("min: " + min);
System.out.println("max: " + max);
System.out.println("avg: " + avg);
System.out.println("err: " + err.get());
} public interface ConcurrentTask {
void run();
} }
(3)测试 ZkTest.java
package com.concurrent; import com.concurrent.ConcurrentTest.ConcurrentTask; public class ZkTest {
public static void main(String[] args) {
Runnable task1 = new Runnable(){
public void run() {
DistributedLock lock = null;
try {
lock = new DistributedLock("127.0.0.1:2182","test1");
//lock = new DistributedLock("127.0.0.1:2182","test2");
lock.lock();
Thread.sleep(3000);
System.out.println("===Thread " + Thread.currentThread().getId() + " running");
} catch (Exception e) {
e.printStackTrace();
}
finally {
if(lock != null)
lock.unlock();
} } };
new Thread(task1).start();
try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
ConcurrentTask[] tasks = new ConcurrentTask[60];
for(int i=0;i<tasks.length;i++){
ConcurrentTask task3 = new ConcurrentTask(){
public void run() {
DistributedLock lock = null;
try {
lock = new DistributedLock("127.0.0.1:2183","test2");
lock.lock();
System.out.println("Thread " + Thread.currentThread().getId() + " running");
} catch (Exception e) {
e.printStackTrace();
}
finally {
lock.unlock();
} }
};
tasks[i] = task3;
}
new ConcurrentTest(tasks);
}
}
4.5 更多分布式数据结构和协议
五、BooKeeper
5.1 BooKeeper概述
BooKeeper具有副本功能,目的是提供可靠的日志记录。在BooKeeper中,服务器被称为账本(Bookies),在账本之中有不同的账户(Ledgers),每一个账户由一条条记录(Entry)组成。如果使用普通的磁盘存储日志数据,那么日志数据可能遭到破坏,当磁盘发生故障的时候,日志也可能被丢失。BooKeeper为每一份日志提供了分布式的存储,并采用了大多数(quorum,相对于全体)的概念。也就是说,只要集群中的大多数机器可用,那么该日志一直有效。
BooKeeper通过客户端进行操作,客户端可以对BooKeeper进行添加账户、打开账户、添加账户记录、读取账户记录等操作。另外,BooKeeper的服务依赖于ZooKeeper,可以说BooKeeper依赖于ZooKeeper的一致性及其分布式特点,在其之上提供另外一种可靠性服务。BooKeeper的架构如下图所示:☆
aaarticlea/png;base64,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" alt="" width="632" height="473" />
5.2 BooKeeper角色
从上图中可以看出,BooKeeper中总共包含四类角色:
① 账本:Bookies
② 账户:Ledger
③ 客户端:Client
④ 元数据及存储服务:Metadata Storage Service
下面简单介绍这四类角色的功能:
(1) 账本 BooKies
账本是BooKeeper的存储服务器,他存储的是一个个的账本,可以将账本理解为一个个节点。在一个BooKeeper系统中存在多个账本(节点),每个账户被不同的账本所存储。若要写一条记录到指定的账户中,该记录将被写到维护该账户所有帐本节点中。为了提高系统的性能,这条记录并不是真正的被写入到所有的节点中,而是选择集群的一个大多数集进行存储。该系统独有的特性,使得BooKeeper系统有良好的扩展性。即,我们可以通过简单的添加机器节点的方法提高系统容量。☆☆
(2) 账户 Ledger
账户中存储的是一系列记录,每一条记录包含一定的字段。记录通过写操作一次性写入,只能进行附加操作不能进行修改。每条记录包含如下字段:
aaarticlea/png;base64,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" alt="" />
当满足下列两个条件时,某条记录才被认为是存储成功:
① 之前所记录的数据被账本节点的大多数集所存储。
② 该记录被账本节点的大多数集所存储。
(3) 客户端 BooKeeper Client
客户端通常与BooKeeper应用程序进行交互,它允许应用程序在系统上进行操作,包括创建账户,写账户等。
(4) 元数据存储服务 Metadata Storage Service
元数据信息存储在ZooKeeper集群当中,它存储关于账户和账本的信息。例如,账本由集群中的哪些节点进行维护,账户由哪个账本进行维护。应用程序在使用账本的时候,首先要创建一个账户。在创建账户时,系统首先将该账本的Metadata信息写入到ZooKeeper中。每一个账户在某一时刻只能有一个写实例(分布式锁)。在其他实例进行读操作之前首先需要将写实例关闭。如果写操作实例由于故障未能正常关闭,那么下一个尝试打开账户的实例将需要首先对其进行恢复,并正确关闭写操作。在进行写操作的同时需要将最后一次的写记录存储到ZooKeeper中,因此恢复程序仅需要在ZooKeeper中查看该账户所对应的最后一条写记录,然后将其正确的写入到账户中,再在正确关闭写操作。在BooKeeper中该恢复程序有系统自动执行不需要用户参与。
【Zookeeper系列】构建ZooKeeper应用(转)的更多相关文章
- 【Zookeeper系列】ZooKeeper一致性原理(转)
原文链接:https://www.cnblogs.com/sunddenly/p/4138580.html 一.ZooKeeper 的实现 1.1 ZooKeeper处理单点故障 我们知道可以通过Zo ...
- 【Zookeeper系列】Zookeeper简单介绍(转)
原文链接:https://www.cnblogs.com/sunddenly/p/4033574.html 一.分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技 ...
- zookeeper系列之六—zookeeper之应用
http://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3113923.html Zookeeper是hadoop的一个子项目,虽然源自hadoop ...
- 【Zookeeper系列】zookeeper面试题(转)
原文链接:https://segmentfault.com/a/1190000014479433 1.ZooKeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是 ...
- 【Zookeeper系列】ZooKeeper机制架构(转)
原文链接:https://www.cnblogs.com/sunddenly/p/4133784.html 一.ZooKeeper权限管理机制 1.1 权限管理ACL(Access Control L ...
- 【Zookeeper系列】ZooKeeper管理分布式环境中的数据(转)
原文地址:https://www.cnblogs.com/sunddenly/p/4092654.html 引言 本节本来是要介绍ZooKeeper的实现原理,但是ZooKeeper的原理比较复杂,它 ...
- 【Zookeeper系列】Zookeeper命令操作(转)
原文链接:https://www.cnblogs.com/sunddenly/p/4031881.html 一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他 ...
- 【Zookeeper系列】ZooKeeper安装配置(转)
原文链接:https://www.cnblogs.com/sunddenly/p/4018459.html 一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪 ...
- zookeeper系列之一—zookeeper入门
Zookeeper是什么? Zookeeper故名思议动物管理员,它是拿来管大象(Hadoop).蜜蜂(Hive).小猪(Pig)的管理员,Apache Hbase和Apache Solr以及Link ...
- 【Zookeeper系列】ZooKeeper伸缩性(转)
原文地址:https://www.cnblogs.com/sunddenly/p/4143306.html 一.ZooKeeper中Observer 1.1 ZooKeeper角色 经过前面的介绍,我 ...
随机推荐
- Python之函数第三篇
一.匿名函数 匿名函数是lambda定义的没有名字的具有一些小功能的函数 具体形式是 lambda x: X**2 # 求平方操作 lambda x: x>100 # 判断参数是否大于100 二 ...
- x264阅读记录-3
14. x264_macroblock_encode函数-1 这个函数主要根据已经选定的模式来对宏块残差进行编码. )如果是P_SKIP模式,那么调用x264_macroblock_encode_ ...
- windows10创建ftp服务器
1.创建用户 2.创建FTP服务 3.开通防火墙服务 建立端口21,20入站规则 4.访问测试
- WIN10系统提示无法使用内置管理员账户打开XXX应用程序怎么办
重装了系统之后,只保留Administrator账户,结果打开程序的时候回弹出这个提示 运行,输入secpol.msc 本地策略-安全选项,启用下面这个,然后重启计算机
- 每天一个linux命令(14):head命令
1.命令简介 head (head) 用来显示档案的开头至标准输出中.如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头.如果不指定文件,或者文件为"-",则从标准输入读 ...
- iOS如何在应用中添加图标更换功能
一.在info.plist中设置图标信息 首先将需要更换的图标按照下面的方式声明,以便我们能够正常调用文件和方法.注意,每个图标的图标名称和对应的文件名要一一对应. 二.在工程根目录下添加图标文件 图 ...
- 在windows命令行批量ping局域网内IP
参考了博客园Alfred Zhao的文章<Windows平台ping测试局域网所有在用IP> 在cmd命令行运行如下命令即可: ,,) -w .%i | find "回复&quo ...
- 中期linux课程考试题
[口头表达] 1)请描述你了解的磁盘分区的相关知识2)什么是rsync,你有什么生产环境的应用?3)在生产环境中,公司的IDC机房即将超过254台机器,请问你有什么解决方案来规划扩展IDC机房的内网网 ...
- 游戏行业DDoS攻击解决方案
行业综述 根据全球游戏和全球移动互联网行业第三方分析机构Newzoo的数据显示:2017年上半年,中国以275亿美元的游戏市场收入超过美国和日本,成为全球榜首. 游戏行业的快速发展.高额的攻击利润.日 ...
- Unity StreamingMipmaps 简单测试
StreamingMipmaps是Unity2018.2中加入的新功能,意指通过CPU控制,只加载部分Mipmap图片以节省更多的内存及显存空间. 我测试时遇到了问题,后来发现必须打包出来测才有效(注 ...