Zookeeper
文章平均质量分 57
尼古拉斯--黑子
学海无涯
展开
-
Zookeeper典型使用场景
数据发布订阅:概述:数据发布/订阅( Publish/Subscribe)系统,即所谓的配置中心,顾名思义就是发布者将数据发布到ZooKeeper的一个或一系列节点上,供订阅者进行数据订阅, 进而达到动态获取数据的目的,实现配置信息的集中式管理和数据的动态更新。 两种设计模式: 推(Push)模式: 服务端主动将数据更新发送给所有订阅的客户端 拉(Pull)模式: 由客户端原创 2018-01-10 17:10:42 · 655 阅读 · 0 评论 -
Zookeeper详解:
数据模型:树:在ZooKeeper中,每一个数据节点都被称为一个ZNode,所有ZNode按层次化结构进行组织,形成一棵树。使用斜杠(/)进行分割的路径表示,可以向这个节点中写入数据,也可以在节点下面创建子节点。事务ID:在ZooKeeper中,事务是指能够改变ZooKeeper服务器状态的操作,我们也称之为事务操作或更新操作,一般包括数据节点创建与删除、数据节点内容更新和原创 2018-01-11 14:54:00 · 219 阅读 · 0 评论 -
Watcher机制
概述:ZooKeeper的Watcher机制主要包括客户端线程、客户端WatchManager和ZooKeeper服务器三部分。在具体工作流程上,简单地讲,客户端在向ZooKeeper服务器注册Watcher的同时,会将Watcher对象存储在客户端的WatchManager中。当ZooKeeper服务器端触发Watcher事件后,会向客户端发送通知,客户揣线程从WatchManager中取出原创 2018-01-11 15:10:51 · 596 阅读 · 0 评论 -
Jute,通信协议
序列化:概述:对于一个网络通信,首先需要解决的就是对数据的序列化和反序列化处理,在ZooKeeper中,使用了Jute这一序列化组件来进行数据的序列化和反序列化操作。同时,为了实现一个高效的网络通信程序,良好的通信协议设计也是至关重要的。Zookeeper团队曾想过将Jute替换成Apache的Avro或是Google的protobuf但是考虑到新老版本序列化组件的兼容性和当前Jute原创 2018-01-15 14:18:07 · 1149 阅读 · 0 评论 -
Zookeeper简介:
ZooKeeper是什么:ZooKeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。ZooKeeper可以保证如下分布式一致性特性: 顺序一致性 从同一个客户端发起的事务请求,最终将会严格地按照其发起顺序被应用到ZooKeeper中去。 原子性原创 2018-01-08 13:42:10 · 212 阅读 · 0 评论 -
ZAB协议
概述:在深入了解ZooKeeper之前,相信很多读者都会认为ZooKeeper就是Paxos算法的一个实现。但事实上,ZooKeeper并没有完全果用Paxos算法,而是使用了一种称为ZooKeeperAtomic Broadcast ( ZAB, ZooKeeper原子消息广播协议)的协议作为其数据一致性的核心算法。 ZAB协议的核心是定义了对于那些会改变ZooKeeper服务器数据状态的原创 2018-01-08 21:07:55 · 530 阅读 · 0 评论 -
使用介绍
常用命令:创建:create [-s] [-e] path data acl -s或-e分别指定节点特性:顺序或临时节点。默认情况下,不添加-s或-e参数的,创建的是持久节点。 例子: create /zk-book 123 在ZooKeeper的根节点下创建了一个叫作/zk-book的节点,井且节点的数据内容是”123”。另外,create命令的最后一个参数是acl,它是用来原创 2018-01-09 19:04:14 · 244 阅读 · 0 评论 -
基于Zookeeper实现的几种分布式典型场景
分布式锁:package com.tianlh.zookeeper;import java.text.SimpleDateFormat;import java.util.Date;import java.util.concurrent.CountDownLatch;import org.apache.curator.RetryPolicy;import org.apache.原创 2018-01-10 15:04:19 · 1098 阅读 · 0 评论