ZK

zk集群搭建

别等时光非礼了梦想. 提交于 2020-01-19 19:59:03
## zookeeper基础知识、体系结构、数据模型 1、zookeeper是一个类似hdfs的树形文件结构, zookeeper可以用来保证数据在(zk)集 群之间的数据的事务性一致; 2、zookeeper有watch事件,是一次性触发的,当watch监视的数据发生变化时,通 知设置了该watch的client,即watcher 3、zookeeper有三个角色: Learner, Follower, Observer 4、zookeeper应用场景: 统一命名服务(Name Service) 配置管理(Configuration Management) 集群管理(Group Membership) 共享锁(Locks) 队列管理 ## 环境准备 zookeeper运行需要jdk的支持,所以需要配置jdk的环境变量,此处可以选择两种环境变量配置:全局&&局部。 全局:**/etc/profile**下配置全局的**JAVA_HOME和PATH**等环境信息 ```shell export JAVA_HOME=/usr/local/jdk1.8 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA

Zookeeper 初体验之——JAVA实例

二次信任 提交于 2020-01-19 06:30:15
简介 Apache Zookeeper 是由 Apache Hadoop 的 Zookeeper 子项目发展而来,现在已经成为了 Apache 的顶级项目。Zookeeper 为分布式系统提供了高效可靠且易于使用的协同服务,它可以为分布式应用提供相当多的服务,诸如统一命名服务,配置管理,状态同步和组服务等。 Zookeeper 接口简单,开发人员不必过多地纠结在分布式系统编程难于处理的同步和一致性问题上,你可以使用 Zookeeper 提供的现成(off-the-shelf)服务来实现分布式系统的配置管理,组管理,Leader 选举等功能。 英文原文地址 : http://zookeeper.apache.org/doc/current/javaExample.html 一个简单的 Zookeeper Watch 客户端 为了介绍 Zookeeper Java API 的基本用法,本文将带你如何一步一步实现一个功能简单的 Zookeeper 客户端。该 Zookeeper 客户端会监视一个你指定 Zookeeper 节点 Znode, 当被监视的节点发生变化时,客户端会启动或者停止某一程序。 基本要求 该客户端具备四个基本要求: 客户端所带参数: Zookeeper 服务地址。 被监视的 Znode 节点名称。 可执行程序及其所带的参数 客户端会获取被监视 Znode

ZooKeeper原理及使用

冷暖自知 提交于 2020-01-19 06:19:54
ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。今天这篇文章分为三个部分来介绍ZooKeeper,第一部分介绍ZooKeeper的基本原理,第二部分介绍ZooKeeper提供的Client API的使用,第三部分介绍一些ZooKeeper典型的应用场景。 ZooKeeper基本原理 1. 数据模型 如上图所示,ZooKeeper数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode。每个ZNode都可以通过其路径唯一标识,比如上图中第三层的第一个ZNode, 它的路径是/app1/c1。在每个ZNode上可存储少量数据(默认是1M, 可以通过配置修改, 通常不建议在ZNode上存储大量的数据),这个特性非常有用,在后面的典型应用场景中会介绍到。另外,每个ZNode上还存储了其Acl信息,这里需要注意,虽说ZNode的树形结构跟Unix文件系统很类似,但是其Acl与Unix文件系统是完全不同的,每个ZNode的Acl的独立的,子结点不会继承父结点的,关于ZooKeeper中的Acl可以参考之前写过的一篇文章《 说说Zookeeper中的ACL 》。 2.重要概念 2.1 ZNode 前文已介绍了ZNode,

ZooKeeper原理及使用

风流意气都作罢 提交于 2020-01-19 06:19:12
转:http://blog.csdn.net/xinguan1267/article/details/38422149 ZooKeeper是 Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。今天这篇文章分为三个部分来介绍ZooKeeper,第一部分介绍ZooKeeper的基本原理,第二部分介绍ZooKeeper提供的Client API的使用,第三部分介绍一些ZooKeeper典型的应用场景。 ZooKeeper基本原理 1. 数据模型 如上图所示,ZooKeeper数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode。每个ZNode都可以通过其路径唯一标识,比如上图中第三层的第一个ZNode, 它的路径是/app1/c1。在每个ZNode上可存储少量数据(默认是1M, 可以通过配置修改, 通常不建议在ZNode上存储大量的数据),这个特性非常有用,在后面的典型应用场景中会介绍到。另外,每个ZNode上还存储了其Acl信息,这里需要注意,虽说ZNode的树形结构跟Unix文件系统很类似,但是其Acl与Unix文件系统是完全不同的,每个ZNode的Acl的独立的,子结点不会继承父结点的

ZooKeeper原理及使用

本秂侑毒 提交于 2020-01-19 06:18:58
ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。今天这篇文章分为三个部分来介绍ZooKeeper,第一部分介绍ZooKeeper的基本原理,第二部分介绍ZooKeeper提供的Client API的使用,第三部分介绍一些ZooKeeper典型的应用场景。 ZooKeeper基本原理 1. 数据模型 如上图所示,ZooKeeper数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode。每个ZNode都可以通过其路径唯一标识,比如上图中第三层的第一个ZNode, 它的路径是/app1/c1。在每个ZNode上可存储少量数据(默认是1M, 可以通过配置修改, 通常不建议在ZNode上存储大量的数据),这个特性非常有用,在后面的典型应用场景中会介绍到。另外,每个ZNode上还存储了其Acl信息,这里需要注意,虽说ZNode的树形结构跟Unix文件系统很类似,但是其Acl与Unix文件系统是完全不同的,每个ZNode的Acl的独立的,子结点不会继承父结点的,关于ZooKeeper中的Acl可以参考之前写过的一篇文章《 说说Zookeeper中的ACL 》。 2.重要概念 2.1 ZNode 前文已介绍了ZNode,

zookeeper集群搭建与监控工具ZK UI安装

徘徊边缘 提交于 2020-01-12 23:27:50
zookeeper集群搭建与监控工具ZK UI安装 zookeeper相关安装 zookeeper集群搭建 安装包下载 信息配置 监控工具ZK UI安装 Shell一键启动脚本编写 zookeeper相关安装 记录下安装zookeeper集群的过程 zookeeper集群搭建 本次安装集群需要3个节点,下面是我的节点信息: node1 192.168.75.200 node2 192.168.75.201 node3 193.168.75.202 安装包下载 链接: https://pan.baidu.com/s/1pmDKErhMLfx0pcMMoZHPaQ 提取码: wghz 信息配置 下载安装后,解压到某个目录下面,复制一个zoo_sample.cfg文件并改名为zoo.cfg 下面是我的配置信息 配置dataDir,dataLogDir的属性值;clientPort端口号;相关集群节点信息 # The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending

Zookeeper的安装与使用

北慕城南 提交于 2020-01-12 00:15:07
1.1. Zookeeper的 安装 与使用 ZooKeeper的安装包括单机模式安装,以及集群模式安装。 安装如果有不懂可以看: https://blog.csdn.net/lihao21/article/details/51778255 1.1.1. Windows环境下搭建Zookeeper 环境要求:必须要有 jdk环境。 (1) 安装 jdk (2) 安装 zookeeper,可以在http://zookeeper.apache.org/官网下下载zookeeper。 我下载的是 3.3.6版本的zookeeper。 (3) 解压 zookeeper后获取到zookeeper的目录。 对主要的一些目录做介绍: Bin:主要运行的一些脚本 Conf:配置文件的所在地 Lib:zookeeper的jar (4) 启动 zookeeper服务 走到 bin目录下去运行zkServer.cmd,双击它,但是出现一闪而退的情况,这是正常的。 到 conf目录下将zoo_sample.cfg复制粘贴命名为zoo.cfg。 并修改其中的内容: 1 # The number of milliseconds of each tick 2 3 tickTime=2000 4 5 # The number of ticks that the initial 6 7 #

彻底讲清楚ZooKeeper分布式锁的实现原理

≡放荡痞女 提交于 2020-01-10 15:27:16
一、写在前面 之前写过一篇文章(《 拜托,面试请不要再问我Redis分布式锁的实现原理 》),给大家说了一下Redisson这个开源框架是如何实现Redis分布式锁原理的,这篇文章再给大家聊一下ZooKeeper实现分布式锁的原理。 同理,我是直接基于比较常用的 Curator 这个开源框架,聊一下这个框架对ZooKeeper(以下简称zk)分布式锁的实现。 一般除了大公司是自行封装分布式锁框架之外,建议大家用这些开源框架封装好的分布式锁实现,这是一个比较快捷省事儿的方式。 二、ZooKeeper分布式锁机制 接下来我们一起来看看, 多客户端获取及释放zk分布式锁的整个流程及背后的原理。 首先大家看看下面的图,如果现在有两个客户端一起要争抢zk上的一把分布式锁,会是个什么场景? 如果大家对zk还不太了解的话,建议先自行百度一下,简单了解点基本概念,比如zk有哪些节点类型等等。 参见上图。zk里有一把锁,这个锁就是zk上的一个节点。然后呢,两个客户端都要来获取这个锁,具体是怎么来获取呢? 咱们就假设客户端A抢先一步,对zk发起了加分布式锁的请求,这个加锁请求是用到了zk中的一个特殊的概念,叫做 “临时顺序节点”。 简单来说,就是直接在"my_lock"这个锁节点下,创建一个顺序节点,这个顺序节点有zk内部自行维护的一个节点序号。 比如说,第一个客户端来搞一个顺序节点

分布式SpringBoot + Dubbo + Zookeeper伪集群

假装没事ソ 提交于 2020-01-10 04:31:24
zk伪集群指的是一台主机配置多个zk 先安装一个zk,然后把zk文件夹复制粘贴多份,这样就可以配置多个zk了,然后在每个zk配置指定参数 这里我配置了4个zk,点击进入,打开conf下的zoo.cfg(zoo_sample.cfg复制一份去掉sample就是了) 另外三个zk配置文件只要dataDir、dataLogDir和clientPort不一样即可,其他都一样 然后建立dataDir和dataLogDir对应的文件夹 然后再dataDir下的每个文件夹下建立一个myid,其内容为对应的上面所说的1、2、3、4 其他的类似,内容为2、3、4 到此zk伪集群的配置就完成了,点击zk文件夹对应的bin下的zkServer.cmd就可以启动zk了 SpringBoot和Dubbo在idea中的依赖搭建什么的我就不多说了,看我的github=》ecs项目(当然只能我自己看得到,本来就是写个自己的,记个笔记而已) 这里我出一个application.yml配置dubbo的内容 另外3个除了dubbo.application.name和protocol.port不一样,其他一样 然后提供者暴露的接口使用的注解是dubbo中的@Service,消费者需要使用dubbo中的@Reference注解自动注入,提供者的启动类要再加上个@EnableDubbo,还有用到的实体类啊

zk - disable key controls for combobox

依然范特西╮ 提交于 2020-01-07 05:37:06
问题 Is it possible to disable the keyboard controls for a Combobox in ZK? That is, when a user enters some text into a Combobox, by default they can use the arrow keys to move up and down the list. I would like to disable this functionally as it doesn't work well with the user experience we are designing. I see nothing in the documentation explicitly. 回答1: You can override _doKeyDown js function, e.g., <zk xmlns:w="client"> <combobox> <attribute w:name="_doKeyDown"><![CDATA[ function (evt) { var