
zookeeper
文章平均质量分 71
zooKeeper是一个经典的分布式数据一致性解决方案,致力于为分布式应用提供一 个高性能、高可用,且具有严格顺序访问控制能力的分布式协调存储服务。zooKeeper由雅虎研究院开发,是Google Chubby的开源实现,后来托管到 Apache,于2010年11月正式成为Apache的顶级项目。
NPException.
逐梦路上哥并不孤独,因为有梦想和孤独陪着哥!——pyh
展开
-
10.zookeeper集群
zookeeper集群搭建演示在单机环境下,基于一台虚拟机,进行zookeeper伪集群搭建,zookeeper集群中包含3个节点,节点对外提供服务端口号分别为2181、 2182、2183。安装3份zookeeper(模拟3台服务器),安装目录分别为zookeeper2181、zookeeper2182、zookeeper2183,也可以基于原本已经安装有zookeeper的基础上直接复制再重命名。复制命令如下:zookeeper安装参考:2.zookeeper单机安装cp -r zookeep原创 2021-06-12 14:49:55 · 218 阅读 · 2 评论 -
9.zookeeper之分布式锁
分布式锁案例分布式锁有多种实现方式,比如通过数据库、redis都可实现。作为分布式协同工具ZooKeeper,当然也有着标准的实现方式。下面介绍在zookeeper中如何实现排他锁。设计思路:每个客户端往/Locks下创建临时有序节点/Locks/Lock000000001。客户端取得/Locks下子节点,并进行排序,判断排在最前面的是否为自己,如果自己的锁节点在第一位,代表获取锁成功。如果自己的锁节点不在第一位,则监听自己前一位的锁节点。例如,自己锁节点 Lock000000001当前一位锁原创 2021-06-09 21:33:36 · 142 阅读 · 2 评论 -
8.zookeeper之生成分布式唯一ID
生成分布式唯一ID案例在过去的单库单表型系统中,通常可以使用数据库字段自带的auto_increment 属性来自动为每条记录生成一个唯一的ID。但是分库分表后,就无法在依靠数据库的auto_increment属性来唯一标识一条记录了。此时我们就可以用zookeeper在分布式环境下生成全局唯一ID。zookeeper在创建有序节点时,会生成一个序列号,而这个序列号在zookeeper中(即使在整个集群环境中)是唯一的,所以我们可以直接或者间接(比如拿原生的序列号经过运算转换成另外一种符合业务格式的ID原创 2021-06-07 23:58:27 · 680 阅读 · 2 评论 -
7.zookeeper之配置中心
配置中心案例工作中有这样的一个场景:数据库用户名和密码信息放在一个配置文件中,应用读取该配置文件,配置文件信息放入缓存。 若数据库的用户名和密码改变时候,还需要重新加载缓存,比较麻烦。通过zooKeeper可以轻松完成,当数据库发生变化时自动完成缓存同步。设计思路:连接zookeeper服务器。读取zookeeper中的配置信息,注册watcher监听器,读取配置信息存入本地变量。当zookeeper中的配置信息发生变化时,通过watcher的回调方法捕获数据变化事件。重新获取配置信息。获原创 2021-06-07 23:03:44 · 296 阅读 · 0 评论 -
6.zookeeper watcher监听机制
watcher概念zookeeper提供了数据的发布/订阅功能,多个订阅者可同时监听某一特定主题对象,当该主题对象的自身状态发生变化时(例如节点内容改变、节点下的子节点列表改变等),会实时、主动通知所有订阅者。zookeeper采用了Watcher机制实现数据的发布/订阅功能。该机制在被订阅对象发生变化时会异步通知客户端,因此客户端不必在Watcher注册后轮询阻塞,从而减轻了客户端压力。 watcher机制实际上与观察者模式类似,也可看作是一种观察者模式在分布式场景下的实现方式。watcher架构原创 2021-06-02 00:41:39 · 266 阅读 · 0 评论 -
5.zookeeper javaAPI
znode是zooKeeper集合的核心组件,zookeeper API提供了一小组方法使用 zookeeper集合来操纵znode的所有细节。客户端应该遵循以步骤,与zookeeper服务器进行清晰和干净的交互。连接到zookeeper服务器,zookeeper服务器为客户端分配会话ID(sessionId)。定期向服务器发送心跳。否则,zookeeper服务器将过期会话ID,客户端需要重新连接。只要会话ID处于活动状态,就可以获取/设置znode。所有任务完成后,断开与zookeeper服务原创 2021-05-25 00:52:23 · 152 阅读 · 0 评论 -
4.zookeeper权限控制
概述zookeeper类似文件系统,client 可以创建节点、更新节点、删除节点。zookeeper的access control list 访问控制列表可以对节点权限的控制。acl权限列表特点如下:zooKeeper的权限控制是基于每个znode节点的,需要对每个节点设置权限每个znode支持设置多种权限控制方案和多个权限子节点不会继承父节点的权限,客户端无权访问某节点,但可能可以访问它的子节点acl权限控制,使用scheme:id:permission来标识,主要涵盖 3 个方面:权原创 2021-05-15 16:21:49 · 645 阅读 · 0 评论 -
3.zookeeper常用shell命令
zookeeper常用shell命令新增create [-s] [-e] path data #其中-s 为有序节点,-e 临时节点有序节点和无序节点的区别:有序节点创建成功之后,生成的节点路径格式为:指定节点名称 + 自增序号有序节点生成的节点路径为:/test0000000005无序节点创建成功之后,生成的节点路径为指定的节点名称无序节点生成的节点路径为:/hello永久节点和临时节点的区别:zookeeper默认生成都是永久节点。永久节点:只要不手动删除该节点,该原创 2021-05-11 01:26:26 · 185 阅读 · 0 评论 -
2.zookeeper单机安装
环境准备JDK1.8+安装包Linux系统Zookeeper安装包JDK安装解压tar -xzvf jdk-xxx-xxx.tar.gz配置jdk环境变量vim打开 .bash_profile文件,vi .bash_profile,文件加入以下内容(.bash_profile是位于当前用户home目录下的隐藏文件):JAVA_HOME=/home/zookeeper/jdk1.8.0_131export JAVA_HOMEPATH=$JAVA_HOME/bin:$PATH原创 2021-05-09 13:27:53 · 192 阅读 · 1 评论 -
1.zookeeper介绍
zookeeper简介zooKeeper由雅虎研究院开发,是Google Chubby的开源实现,后来托管到 Apache,于2010年11月正式成为Apache的顶级项目。大数据生态系统里的很多组件的命名都是某种动物或者昆虫,比如hadoop就是 ????,hive就是????。zookeeper即动物园管理者,顾名思义就是管理大数据生态系统各组件的管理员,如下图所示:zookeeper应用场景zooKeeper是一个经典的分布式数据一致性解决方案,致力于为分布式应用提供一 个高性能、高可用,且原创 2021-05-09 12:42:53 · 216 阅读 · 0 评论