![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
zookeeper
HX_2022
这个作者很懒,什么都没留下…
展开
-
leader选举
一、服务器状态looking:寻找leader状态。当服务器处于该状态时,它会认为当前集群中没有leader,因此需要进入leader选举状态following:跟随着状态。表明当前服务器角色是followerobserving:观察者状态。表明当前服务器角色是observer分为两种选举,服务器启动时的选举和服务器运行时期的选举二、服务器启动时期的leader选举在集群初始化节点,当有一台服务器server1启动时,其单独无法进行和完成leader选举,当第二台服务器server2启动时,原创 2020-08-04 15:42:57 · 157 阅读 · 0 评论 -
一致性协议(zab协议)
zab协议的全称是 Zookeeper Atomic Broadcast (zookeeper原子广播)。zookeeper是通过zab协议来保证分布式事务的最终一致性。基于zab协议,zookeeper集群中的角色主要有以下三类,如下所示:角色描述领导者(Leader)领导者负责进行投票的发起和决议,更新系统状态学习者(Learner)-跟随者(Follower)Follower用于接收客户端请求并向客户端返回结果,在选主过程中参与投票学习者(Learner)-观察原创 2020-08-04 15:40:23 · 618 阅读 · 0 评论 -
手把手教你zookeeper搭建集群(虚拟机版)
单机环境下,jdk、zookeeper安装完毕,基于一台虚拟机,进行zookeeper伪集群搭建,zookeeper集群中包含3个节点,节点对外提供服务端口号,分别为2181、2182、2183基于zookeeper-3.4.10复制三份zookeeper安装好的服务器文件,目录名称分别为zookeeper2181、zookeeper2182、zookeeper2183cp -r zookeeper-3.4.10 zookeeper2181cp -r zookeeper-3.4.10 zook原创 2020-08-04 15:37:33 · 397 阅读 · 0 评论 -
zookeeper实现分布式锁
分布式锁,是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。 ——维基百科分布式锁有多种实现方式,比如通过数据库、redis都可实现。作为分布式协同工具Zookeeper,当然也有着标准的实现方式。下面介绍在zookeeper中如果实现排他锁设计思路:每个客户端往/Locks下创建临.原创 2020-08-04 15:34:50 · 84 阅读 · 0 评论 -
zookeeper实现分布式唯一id
在过去的单库单表型系统中,通常第可以使用数据库字段自带的auto_ increment属性来自动为每条记录生成个唯一的ID。但是分库分表后,就无法在依靠数据库的auto_ increment属性来唯一标识一条记录了。此时我们就可以用zookeeper在分布式环境下生成全局唯一ID。设计思路:连接zookeeper服务器;指定路径生成临时有序节点;取序列号及为分布式环境下的唯一ID。public class IdGenerate { // zk的连接串 private static原创 2020-08-04 14:20:42 · 831 阅读 · 1 评论 -
zookeeper的事件监听机制
1、watcker的概念zookeeper提供了数据的发布/订阅功能,多个订阅者可同时监听某一特定主题对象,当该主题对象的自身状态发生变化时例如节点内容改变、节点下的子节点列表改变等,会实时、主动通知所有订阅者。zookeeper采用了 Watcher机制实现数据的发布订阅功能。该机制在被订阅对象发生变化时会异步通知客户端,因此客户端不必在 Watcher注册后轮询阻塞,从而减轻了客户端压力。watcher机制事件上与观察者模式类似,也可看作是一种观察者模式在分布式场景下的实现方式。2、watc原创 2020-08-04 14:11:48 · 884 阅读 · 0 评论 -
zookeeper的 JavaAPI
znode是zooKeeper集合的核心组件,zookeeper API提供了一小组方法使用zookeeper集合来操纵znode的所有细节。 客户端应该遵循以步骤,与zookeeper服务器进行清晰和干净的交互。连接到zookeeper服务器。zookeeper服务器为客户端分配会话ID。定期向服务器发送心跳。否则,zookeeper服务器将过期会话ID,客户端需要重新连接。只要会话ID处于活动状态,就可以获取/设置znode。所有任务完成后,断开与zookeeper服务器的连接。如果原创 2020-08-03 17:36:02 · 299 阅读 · 0 评论 -
zookeeper的Acl权限控制
1、概述 zookeeper类似文件系统,client可以创建结点、更新结点、删除结点,那么如何做到结点的权限控制呢?zookeeper的 access control list 访问控制列表可以做到这一点acl权限控制,使用scheme:id:permission来标识,主要涵盖3个方面:权限模式(scheme):授权的策略授权对象(id):授权的对象权限(permission):授予的权限其特性如下:zookeeper的权限控制是基于每个znode结点的,需要对每个结点设置权限原创 2020-08-03 17:34:34 · 333 阅读 · 0 评论 -
zookeeper的常用shell命令
常用shell命令如下:zookeeper——getting started——https://zookeeper.apache.org/doc/r3.4.14/zookeeperStarted.html#sc_FileManagement(1)查询get /hadoop 查看结点的数据和属性 stat /hadoop 查看结点的属性(2)创建create [-s] [-e] path data # 其中 -s 为有序结点,-e 临时结点(默认是持久结点)创建结点并写入数据:cre原创 2020-08-03 17:32:46 · 335 阅读 · 0 评论 -
zookeeper的单机安装
单机安装步骤如下:测试系统环境centos7.3zookeeper:zookeeper-3.4.10.tar.gzjdk:jdk-8u131-linux-x64.tar.gz(1)在centos中使用 root用户创建 zookeeper用户,用户名:zookeeper密码:zookeeper:useradd zookeeperpasswd zookeepersu zookeeper(2)zookeeper底层依赖于jdk,zookeeper用户登录后,根目录下先进行jdk 的安装,jdk原创 2020-08-03 17:31:07 · 150 阅读 · 0 评论 -
zookeeper数据模型
1、zookeeper数据模型zookeeper的数据结点可以视为树状结构(或目录),树中的各个结点被称为znode(即zookeeper node),一个znode可以由多个子结点。zookeeper结点在结构上表现为树状;使用路径path来定位某个znode,比如/ns-1/itcast/mysqml/schemal1/table1,此处ns-1,itcast、mysql、schemal1、table1分别是根结点、2级结点、3级结点以及4级结点;其中ns-1是itcast的父结点,itcast是n原创 2020-08-03 17:29:41 · 323 阅读 · 0 评论 -
Zookeeper简介
1、什么是zookeeper?zookeeper官网:https://zookeeper.apache.org/ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. All of these kinds of services are used in原创 2020-08-03 17:26:43 · 517 阅读 · 0 评论