
Zookeeper
Zookeeper教程
geyiwei-suzhou
博客逐渐迁移至 blog.antherd.com
展开
-
Zookeeper教程-10 RPC
什么是RPCRPC(Remote Procedure Call Protocol)远程过程调用协议。通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个过程或函数,就像调用本地应用程序中的一样。正式的描述是:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC主要特质RPC是协议:协议意味着规范。目前典型的RPC实现包括:Dubbo、Thrift、Hetty等。但这些实现往往都会附加其他的重要功能,例如Dubbo还包括了服务管理、访问权限管理等功能。原创 2020-12-17 10:32:55 · 183 阅读 · 0 评论 -
Zookeeper教程-9 IO通讯模型
IO通信模型网络通信的本质是网络间的数据IO。只要有IO,就会有阻塞或非阻塞的问题,无论这个IO是网络的,还是硬盘的。原因在于程序是运行在系统之上的,任何形式的IO操作发起都需要系统的支持BIO(阻塞模式)BIO即blocking IO,是一种阻塞式的IOjdk1.4版本之前的Socket即BIO模式BIO的问题在于accept()、read()的操作点都是被阻塞的服务器线程发起一个accept动作,询问操作系统是否有新的socket信息从端口X发送过来。注意,是询问操作系统。如果操作系统没有发原创 2020-12-17 09:51:48 · 12511 阅读 · 0 评论 -
Zookeeper教程-8 Socket机制
Socket概述Socket,又称为套接字,用于描述IP地址和端口。应用程序通常通过socket向网络发出请求或者应答网络请求。Socket就是为网络编程提供的一种机制:通信两端都有socket网络通信其实就是socket之间的通信数据在两个socket之间通过IO传输网络编程也称作为Socket编程,套接字编程Socket通信是Client/Server模型基于UDP协议的Socket通信新建Java工程:socket2020核心类:DatagramSocket客户端:创建类com原创 2020-12-16 16:04:58 · 478 阅读 · 0 评论 -
Zookeeper教程-7 网络编程
概述通过通信线路(有线或无线)可以把不同地理位置且相互独立的计算机连同其外部设备连接起来,组成计算机网络。在操作系统、网络管理软件及网络通信协议的管理和协调下,可以实现计算机之间的资源共享和信息的传递。网络编程是指用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。对我们来说即如何用编程语言java实现计算机网络中不同计算机之间的通信。网络通信三要素IP地址网络中计算机的唯一标识:32bit(4字节),一般用“点分十进制”表示,如192.168.1.158IP地址=网络地址+主机地址原创 2020-12-16 14:48:35 · 225 阅读 · 0 评论 -
Zookeeper教程-6 数据发布与订阅(配置中心)
数据发布与订阅(配置中心)发布与订阅模型,即所谓的配置中心,顾名思义就是发布者将数据发布到ZK节点上,供订阅者动态获取数据,实际配置信息的集中式管理和动态更新。应用在启动的时候会主动来获取一次配置,同时,在节点上注册一个Watcher,这样一来,以后每次配置有更新的时候,都会实时通知到订阅的客户端,从而达到获取最新配置信息的目的。比如:分布式搜索服务中,索引的元信息和服务器集群机器的节点状态存放在ZK的一些指定节点,供各个客户端订阅使用。注意:适合数据量很小的场景,这样数据更新可能会比较快。命名服原创 2020-12-16 10:55:52 · 252 阅读 · 0 评论 -
Zookeeper教程-5 选举机制
zookeeper默认的算法是FastLeaderElection,采用投票数大于半数则胜出概念服务器ID比如有三台服务器,编号分别为1,2,3编号越大在选择算法中权重越大选举状态LOOKING 竞选状态FOLLOWING 随从状态,同步leader状态,参与投票OBSERVING 同步leader状态,不参与投票LEADING 领导者状态数据ID服务器中存放的最新数据version值越大说明数据越新,在选举算法中数据越新权重越大逻辑时钟也叫投票次数,同一轮投票过程中的逻辑时原创 2020-12-16 10:25:09 · 134 阅读 · 0 评论 -
Zookeeper教程-4 Java API
Zookeeper Java APIorg.apache.zookeeper.ZookeeperZookeeper是在Java中客户端主类,负责建立与zookeeper集群的会话,并提供方法进行操作。org.apache.zookeeper.WatcherWatcher接口表示一个标准的事件处理器,其定义了事件通知相关的逻辑,包含KeeperState和EventType两个枚举类,分别代表了通知状态和事件类型,同时定义了事件的回调方法:process(WatchedEvent event)。pr原创 2020-12-15 17:43:56 · 122 阅读 · 0 评论 -
Zookeeper教程-3 Watcher
Zookeeper提供了分布式数据发布/订阅功能,一个典型的发布/订阅模式系统定义了一种一对多的订阅关系,能让多个订阅者同时监听某一个主题对象,当这个主题对象自生状态变化时,会通知所有订阅者,使他们能够做出相应的处理。Zookeeper中,引入了Watcher机制来实现这种分布式的通知功能。Zookeeper允许客户端向服务端注册一个Watcher监听,当服务端的一些事件触发了这个Watcher,那么就会向指定客户端发送一个事件通知来实现分布式的通知功能。触发事件种类很多,如:节点创建,节点删除,节点改原创 2020-12-15 15:29:44 · 89 阅读 · 0 评论 -
Zookeeper教程-2 shell命令
首先,切换到zookeeper可执行目录下(或者配置全局Path变量)cd /usr/local/zookeeper/bin/查看Zookeeper状态jps #执行jps查看运行状态./zkServer.sh status #查看状态客户端连接./zkCli.sh -server ip #如果不加-server参数,则查找本机Zookeeper服务器创建节点create [-s] [-e] path data ac1其中,-s或-e分别指定节点特性,顺序或临时节点,若不指定,则表原创 2020-12-11 17:13:58 · 151 阅读 · 0 评论 -
Zookeeper教程-1 数据模型
Zookeeper的数据模型在结构上和标准文件系统非常相似,拥有一个层次的命名空间,都是采用树形层次结构,ZooKeeper树中的每个节点都可以拥有子节点。但也有不同之处:Znode兼具文件和目录两种特点。既像文件一样维护着数据、元信息、ACL、时间戳等数据结构,又像目录一样可以作为路径标识的一部分,并可以具有子Znode。用户对Znode具有增、删、改、查等操作(权限允许的情况下)Znode具有原子性。读操作将获取与节点相关的所有数据,写操作也将替换掉节点的所有数据。另外,每一个节点都拥有自己的A原创 2020-12-11 15:47:17 · 127 阅读 · 0 评论 -
Zookeeper教程-0 理论
1. 概述Zookeeper是一个分布式协调服务的开源框架。主要用来解决分布式集群中应用系统的一致性问题,例如如何避免同时操作同一数据造成脏读的问题。Zoopkeeper本质上是一个分布式的小文件存储系统。提供基于类似于文件系统的目录树的数据存储,并且可以对数中的节点进行有效管理。从而用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理。诸如:统一命名服务、分布式配置管理、分布式消息队列、分布式锁、分布式协调等功能。2. Zookeeper特性全局数据一致原创 2020-12-10 16:09:45 · 551 阅读 · 0 评论