ZooKeeper-简介

关于ZooKeeper
ZooKeeper是Hadoop的分布式协调服务。
写分布式应用的主要困难在于会出现“部分失败”(partial failure)。当一条消息在网络中两个节点之间传送时,如果出现网络错误,发送者无法知道接收者是否已经收到这条消息。接收者可能在出现网络错误之前就已经收到这条消息,也有可能没有收到,又或者接收者的进程已经死掉。发送者能够获得真实情况的唯一途径就是重新连接接收者,并向它发出询问。这种情况就是部分失败,即我们不知道一个操作是否已经失败。
由于部分失败是分布式系统固有的特征,因此使用zookeeper并不能避免出现部分失败,当然它也不会隐藏部分失败。Zookeeper可以提供一组工具,在构建分布式应用时能够对部分失败进行正确处理。

ZooKeeper具有以下特点
1.ZooKeeper是简单的:ZooKeeper的核心是一个精简的文件系统,它提供一些简单的操作和一些额外的抽象操作,例如,排序和通知。
2.ZooKeeper是富有表现力的:ZooKeeper的基本操作是一组丰富的构件(building block),可用于实现多种协调数据结构和协议。相关的例子包括:分布式队列、分布式锁和一组节点中的“领导者选举”(leader election)。
3.ZooKeeper具有高可用性:ZooKeeper运行于一组机器之上,并且在设计上具有高可用性,因此应用程序完全可以依赖于它。ZooKeeper可以帮助系统避免出现单点故障,因此可以用于构建一个可靠的应用程序。
4.ZooKeeper采用松耦合交互方式:在ZooKeeper支持的交互过程中,参与者不需要彼此了解。例如,ZooKeeper可以被用于实现“数据汇集”(rendezvous)机制,让进程在不了解其他进程(或网络状况)的情况下能够彼此发现并进行信息交互。参与的各方甚至可以不必同时存在,因为一个进程可以在ZooKeeper中留下一条信息,在改进程结束后,另外一个进程还可以读取这条消息。
5.ZooKeeper是一个资源库:ZooKeeper提供了一个通用协调模式实现方法的开源共享库,使程序员免于编写这类通用的协议。所有人都能够对这个资源库进行添加和改进,久而久之,会使每个人都从中受益。

同时,ZooKeeper也是高性能的。对于以写操作为主的工作负载来说,ZooKeeper的基准吞吐量已经超过每秒10000个操作;对于常规的以读操作为主的工作负载来说,吞吐量更是高出好几倍。

posted on   嘣嘣嚓  阅读(165)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示