
标签:
ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
Zookeeper是Google的Chubby一个开源的实现。是高有效和可靠的协同工作系统。Zookeeper能够用来leader选举,配置信息维护等。在一个分布式的环境中,我们需要一个Master实例或存储一些配置信息,确保文件写入的一致性等。Zookeeper能够保证如下3点:
1、Watches are ordered with respect to other events,other watches,and asynchronous replies. The ZooKeeper client libraries ensures that everything is dispatched in order.
2、A client will see a watch event for a znode it is watching before seeing the new data that corresponds to that znode.
3、The order of watch events from ZooKeeper corresponds to the order of the updates as seen by the ZooKeeper service.
在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据。如果在创建znode时Flag设置为EPHEMERAL,那么当这个创建这个znode的节点和Zookeeper失去连接后,这个znode将不再存在在Zookeeper里。Zookeeper使用Watcher察觉事件信息,当客户端接收到事件信息,比如连接超时,节点数据改变,子节点改变,可以调用相应的行为来处理数据。Zookeeper的Wiki页面展示了如何使用Zookeeper来处理事件通知,队列,优先队列,锁,共享锁,可撤销的共享锁,两阶段提交。
那么Zookeeper能帮我们作什么事情呢?简单的例子:假设我们我们有个20个搜索引擎的服务器(每个负责总索引中的一部分的搜索任务)和一个 总服务器(负责向这20个搜索引擎的服务器发出搜索请求并合并结果集),一个备用的总服务器(负责当总服务器宕机时替换总服务器),一个web的cgi(向总服务器发出搜索请求)。搜索引擎的服务器中的15个服务器现在提供搜索服务,5个服务器正在生成索引。这20个搜索引擎的服务器经常要让正在 提供搜索服务的服务器停止提供服务开始生成索引,或生成索引的服务器已经把索引生成完成可以搜索提供服务了。使用Zookeeper可以保证总服务器自动感知有多少提供搜索引擎的服务器并向这些服务器发出搜索请求,备用的总服务器宕机时自动启用备用的总服务器,web的cgi能够自动地获知总服务器的网络地址变化。这些又如何做到呢?
1、提供搜索引擎的服务器都在Zookeeper中创建znode,zk.create("/search/nodes/node1",
"hostname".getBytes(),Ids.OPEN_ACL_UNSAFE,CreateFlags.EPHEMERAL);
2、总服务器可以从Zookeeper中获取一个znode的子节点的列表,zk.getChildren("/search/nodes",true);
3、总服务器遍历这些子节点,并获取子节点的数据生成提供搜索引擎的服务器列表;
4、当总服务器接收到子节点改变的事件信息,重新返回第二步;
5、总服务器在Zookeeper中创建节点,zk.create("/search/master","hostname".getBytes(),Ids.OPEN_ACL_UNSAFE,CreateFlags.EPHEMERAL);
6、备用的总服务器监控Zookeeper中的"/search/master"节点.当这个znode的节点数据改变时,把自己启动变成总服务器,并把自己的网络地址数据放进这个节点;
7、web的cgi从Zookeeper中"/search/master"节点获取总服务器的网络地址数据并向其发送搜索请求;
8、web的cgi监控Zookeeper中的"/search/master"节点,当这个znode的节点数据改变时,从这个节点获取总服务器的网络地址数据,并改变当前的总服务器的网络地址。

加载全部内容
jdchain 区块链框架系统943KB110人下载京东区块链 JD Chain 是一个企业级的区块链框架系统,具有简洁、易用、可扩展和高性能的特点。 核心实现采用 Java 语言,学习门槛低,运维简便,无缝兼容企业应用IT架构。 这是主项目仓库,主要包括了文档和集成打包的结构,以及多个Git子模块仓库framework, core, explore 等。JD Chain 的目标是实现一个面向企业应用场景的通用区块链框架系统,能够作为企业级基础设施
下载ApacheMaven项目构建工具4.41MB109人下载Apache Maven项目构建工具是一个流行的Java项目构建系统。目前,绝大多数开发人员都把Ant当作Java编程项目的标准构建工具。遗憾的是,Ant的项目管理工具(作为make的替代工具)不能满足绝大多数开发人员的需要。通过检查Ant构建文件,很难发现项目的相关性信息和其它元信息(如开发人员/拥有者、版本或站点主页)。Maven除了以程序构建能力为特色之外,还提供Ant所缺少的高级项目管理工
下载
MaxKey单点登录认证系统 官方版20.59 MB109人下载MaxKey单点登录认证系统 官方版(马克思的钥匙)用户单点登录认证系统(Sigle Sign On System),寓意是最大钥匙,是业界领先的企业级IAM身份管理和身份认证产品,支持OAuth 2.0/OpenID Connect、SAML 2.0、JWT、CAS等标准化的开放协议,提供简单、标准、安全和开放的用户身份管理(IDM)、身份认证(AM)、单点登录(SSO)、RBAC权限管理和资源管理等。这里下载站为您提供MaxKey单点登录认证系统 官方版下载,欢迎您使用这里下载站安装体验!
下载SkyWalking应用性能监控系统4.16MB109人下载SkyWalking 是一款开源的应用性能监控系统,包括指标监控,分布式追踪,分布式系统性能诊断。功能:1、服务,服务实例,端点指标分析2、根本原因分析。在运行时分析代码。阅读Apache SkyWalking:使用性能分析来修复分布式跟踪的盲点。3、服务拓扑图分析4、服务,服务实例和端点依赖关系分析5、检测到慢速服务和端点6、性能优化7、分布式跟踪和上下文传播8、数据库访问指标。检测慢速数据库访
下载bishengjdk-8 毕昇JDK8131.38MB108人下载毕昇JDK 8是华为内部OpenJDK定制版Huawei JDK的开源版本,是一个高性能、可用于生产环境的OpenJDK发行版。Huawei JDK运行在华为内部500多个产品上,积累了大量使用场景和java开发者反馈的问题和诉求,解决了业务实际运行中遇到的多个问题,并在ARM架构上进行了性能优化,毕昇JDK运行在大数据等场景下可以获得更好的性能。毕昇JDK 8与Java SE标准兼容,目前仅支持
下载
kkFileView在线预览 官方版184.50MB107人下载 kkFileView在线预览是一款使用spring boot打造的文件文档在线预览项目解决方案,支持doc、docx、ppt、pptx、xls、xlsx、zip、rar、mp4、mp3以及众多类文本如txt、html、xml、java、properties、sql、js、md、json、conf、ini、vue、php、py、bat、gitignore等文件在线预览。
下载
Jenkins持续集成引擎 正式版17.87 MB107人下载Jenkins持续集成引擎 正式版的前身是Hudson是一个可扩展的持续集成引擎。Jenkins是一款开源CI&CD软件,用于自动化各种任务,包括构建、测试和部署软件。Jenkins支持各种运行方式,可通过系统包、Docker或者通过一个独立的Java程序。这里下载站为您提供Jenkins持续集成引擎 正式版下载,欢迎您使用这里下载站安装体验!
下载Jpom 监控管理系统 正式版1.55MB107人下载Jpom项目监控软件是一款简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件。Jpom项目监控软件主要功能及特点:1、创建、修改、删除项目、Jar包管理2、实时查看控制台日志、备份日志、删除日志、导出日志3、cpu、ram 监控、导出堆栈信息、查看项目进程端口、服务器状态监控4、多节点管理、多节点自动分发5、实时监控项目状态异常自动报警6、在线构建项目发布项目一键搞定7、多用户管理,用户项
下载LinkWeChat开源系统 免费版8.64MB105人下载LinkWeChat,是一款基于企业微信的开源 SCRM 系统,为企业构建私域流量系统的综合解决方案,能显著提升企业社交运营效率。
下载
ofdrw读写库98.15MB104人下载使用ofdrw读写库可以像写HTML和Word那样简单的编写OFD。根据《GB/T 33190-2016 电子文件存储与交换格式版式文档》标准实现版式文档OFD库(含有书签)。ofdrw读写库项目结构:ofdrw-core OFD核心API,参考《GB/T 33190-2016 电子文件存储与交换格式版式文档》实现的基础数据结构。ofdrw-font 生成OFD字体相关。ofdrw-layout
下载