• 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个操作;对于常规的以读操作为主的工作负载来说,吞吐量更是高出好几倍。

  • 相关阅读:
    dotnet程序优化心得(一)
    文章自动排版javascript程序
    GeoTools 2.1.0 released (zz)
    dotnet下时间精度测量
    创建对静态类中一组方法的访问代理
    dotnet程序优化心得(二)
    java web中的Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space
    android开发_SimpleAdapter适配器
    java开发_""和null的区别
    一个小巧的HTML编辑器_CLEditor_源码下载
  • 原文地址:https://www.cnblogs.com/EnzoDin/p/9763378.html
Copyright © 2020-2023  润新知