- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
zk 总结 zk 是一个为分布式应用提供的分布式协调服务器 zk 部分应用场景实现可以用数据库实现,消息中间件实现,有些场景只能用zk来实现 zk 性能有限,使用范围仅适用后台协调管理用 我们系统如下功能有可能适用zk 任务执行 数据同步刷新 配置管理 跟队列相关功能,如开奖号码传递到咨询系统 未涉及的介绍 权限控制 zk服务器 管理 一些基于zk的项目,如Hedwig,一个P/S 消息系统 zk java编程 zk 实现 zk参考 官网:/doc/trunk/ 淘宝通用团队 /team/jm/archives/tag/zookeeper 分布式系统概念与设计 感谢您的关注 client 好比我们现在用的resin 实际演示一下 实际演示一下 实际演示一下 实际演示一下 实际演示一下 实际演示一下 目录 zk 介绍 zk 逻辑部署图 zk 数据结构 zk 数据操作保证 API 介绍 安装和使用 zk应用:统一命名服务 zk应用:配置管理 zk应用:Job调度 zk应用:分布式锁 zk应用:监控服务器 zk应用: 分布式 Barriers zk应用:队列 zk应用:俩阶段提交 zk应用:选举 zk 性能 zk 总结 zk 介绍 官方定义: A Distributed Coordination Service for Distributed Applications 应用范围 命名服务 配置管理 协调服务,如同步,集群,领导节点选取 设计目标 简单的API和数据结构完成协调服务 分布式的,不会出现单点故障 保证操作时序性 性能测试结果表明非常快 分布式概念 定义:一组硬件或者软件分布在网络计算机上,通过消息传递进行通信和动作协调的系统 有如下特征: 并发性,并发执行。并在增加网络资源的时候提高性能处理能。在需要处理共享资源的时候需要协调 缺乏全局时钟:通过交换消息协调各个程序,这依赖于程序发生时间共识。 故障独立性:所有计算机系统都会出现故障。每个组件应当设计能适当处理所依赖组件出现的故障 zk 逻辑部署图 zk 数据结构 类似文件系统 每个节点可以有自己的子节点 每个节点可以存放二进制数据,不超过1M 不同于文件系统的是,没有相对目录概念 zk 数据节点 znode 分永久节点和临时节点,临时节点在回话结束的时候自动删除 znode节点最好存储小于1K的数据,这些信息是配置信息,状态信息等 znode包含的其他数据 数据版本号 ACL版本号 时间戳 子节点数目 与znode关联的ACL可以控制谁能访问此节点 znode也可以定义为自增长节点 客户端可以设置watch在节点上,节点变化该watch被触发,并被随后删除 zk 一致性保证 顺序一致性:客户端的更新顺序与它们被发送的顺序相一致。 原子性:更新操作要么成功要么失败,没有第三种结果。 单系统镜像:无论客户端连接到哪一个服务器,客户端将看到相同的 ZooKeeper 视图。 可靠性:一旦一个更新操作被应用,那么在客户端再次更新它之前,它的值将不会改变。 实时性:Timeliness - The clients view of the system is guaranteed to be up-to-date within a certain time bound。 注意:由于网络延迟,不同客户端看到的zk视图有可能不一样,需要调用sync zk watch 节点读操作getData,getChildren,exists,可以设置一个watch,当数据更新的时候,将会触发一个事件。有如下三个特点 只触发一次:除非客户端再次设置watch,否则客户端只接接收到一次事件 如果注册了watch,则收到到事件,然后才能看到数据变化。 由于网络延迟等因素,异步修改数据成功与收到节点更新事件先后顺序不能保证。 watch 包括 data watch,和 child watch 俩种 。 watch 注意事项 watch被触发后必须再次设置watch,在这段事件内,会错过一些事件 watch仅被触发一次。如果getWatch以及exits 都注册了同一个watch,则节点删除的时候,watch仅被触发一次 zk API create creates a node at a location in the tree delete deletes a node exists tests if a node exists at a location get data reads the data from a node set data writes data to a n
文档评论(0)