本文向大家介绍ZooKeeper在Kafka中的作用是什么?相关面试题,主要包含被问及ZooKeeper在Kafka中的作用是什么?时的应答技巧和注意事项,需要的朋友参考一下 答:Apache Kafka是一个使用Zookeeper构建的分布式系统。虽然,Zookeeper的主要作用是在集群中的不同节点之间建立协调。但是,如果任何节点失败,我们还使用Zookeeper从先前提交的偏移量中恢复,因为
主要内容:实例分布式锁是控制分布式系统之间同步访问共享资源的一种方式。 下面介绍 zookeeper 如何实现分布式锁,讲解排他锁和共享锁两类分布式锁。 排他锁 排他锁(Exclusive Locks),又被称为写锁或独占锁,如果事务T1对数据对象O1加上排他锁,那么整个加锁期间,只允许事务T1对O1进行读取和更新操作,其他任何事务都不能进行读或写。 定义锁: 实现方式: 利用 zookeeper 的同级节点的
zookeeper 的 leader 选举存在两个阶段,一个是服务器启动时 leader 选举,另一个是运行过程中 leader 服务器宕机。在分析选举原理前,先介绍几个重要的参数。 服务器 ID(myid):编号越大在选举算法中权重越大 事务 ID(zxid):值越大说明数据越新,权重越大 逻辑时钟(epoch-logicalclock):同一轮投票过程中的逻辑时钟值是相同的,每投完一次值会增加
在 Zookeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性。 ZAB 协议分为两部分: 消息广播 崩溃恢复 消息广播 Zookeeper 使用单一的主进程 Leader 来接收和处理客户端所有事务请求,并采用 ZAB 协议的原子广播协议,将事务请求以 Proposal 提议广播到所有 Follower 节点,当集群中有过半的Follower 服务器进行正确的 ACK 反馈,那么Lea
主要内容:实例zookeeper 的 watcher 机制,可以分为四个过程: 客户端注册 watcher。 服务端处理 watcher。 服务端触发 watcher 事件。 客户端回调 watcher。 其中客户端注册 watcher 有三种方式,调用客户端 API 可以分别通过 getData、exists、getChildren 实现,利用前面章节创建的 maven 工程,新建 WatcherDemo 类
zookeeper 的 ACL(Access Control List,访问控制表)权限在生产环境是特别重要的,所以本章节特别介绍一下。 ACL 权限可以针对节点设置相关读写等权限,保障数据安全性。 permissions 可以指定不同的权限范围及角色。 ACL 命令行 getAcl 命令:获取某个节点的 acl 权限信息。 setAcl 命令:设置某个节点的 acl 权限信息。 addauth
本章节介绍一下 zookeeper 的节点特性和简单使用场景,正是由于这些节点特性的存在使 zookeeper 开发出不同的场景应用。 1、同一级节点 key 名称是唯一的 实例: 已存在 /runoob 节点,再次创建会提示已经存在。 2、创建节点时,必须要带上全路径 实例: 3、session 关闭,临时节点清除 实例: 同时终端二查看该节点: ctrl+c 关闭终端一连接后,查询终端二 /r
主要内容:四字命令使用zookeeper 支持某些特定的四字命令与其交互,用户获取 zookeeper 服务的当前状态及相关信息,用户在客户端可以通过 telenet 或者 nc(netcat) 向 zookeeper 提交相应的命令。 安装 nc 命令: 四字命令格式: ZooKeeper 常用四字命令主要如下: 四字命令 功能描述 conf 3.3.0版本引入的。打印出服务相关配置的详细信息。 cons 3.3.0
zookeeper 命令用于在 zookeeper 服务上执行操作。 首先执行命令,打开新的 session 会话,进入终端。 下面开始讲解基本常用命令使用,其中 acl 权限内容在后面章节详细阐述。 ls 命令 ls 命令用于查看某个路径下目录列表。 格式: path:代表路径。 以下实例查看 /runoob 节点: ls2 命令 ls2 命令用于查看某个路径下目录列表,它比 ls 命令列出更多
客户端与服务端之间的连接是基于 TCP 长连接,client 端连接 server 端默认的 2181 端口,也就是 session 会话。 从第一次连接建立开始,客户端开始会话的生命周期,客户端向服务端的ping包请求,每个会话都可以设置一个超时时间。 Session 的创建 sessionID: 会话ID,用来唯一标识一个会话,每次客户端创建会话的时候,zookeeper 都会为其分配一个全局
数据模型 在 zookeeper 中,可以说 zookeeper 中的所有存储的数据是由 znode 组成的,节点也称为 znode,并以 key/value 形式存储数据。 整体结构类似于 linux 文件系统的模式以树形结构存储。其中根路径以 / 开头。 进入 zookeeper 安装的 bin 目录,通过sh zkCli.sh打开命令行终端,执行 "ls /" 命令显示: 我们直观的看到此时
主要内容:实例,实例本教程使用的 IDE 为 IntelliJ IDEA,创建一个 maven 工程,命名为 zookeeper-demo,并且引入如下依赖,可以自行在maven中央仓库选择合适的版本,介绍原生 API 和 Curator 两种方式。 IntelliJ IDEA 相关介绍: Intellij IDEA 使用教程 Maven IntelliJ <dependency> <groupId>junit</g
本章节将示范三台 zookeeper 服务端集群搭建步骤。 所需准备工作,创建三台虚拟机环境并安装好 java 开发工具包 JDK,可以使用 VM 或者 vagrant+virtualbox 搭建 centos/ubuntu 环境,本案例基于宿主机 windows10 系统同时使用 vagrant+virtualbox 搭建的 centos7 环境,如果直接使用云服务器或者物理机同理。 步骤一:准
主要内容:Zookeeper 下载安装Linux 安装 zookeeper 下载地址为: https://zookeeper.apache.org/releases.html。 选择一稳定版本,本教程使用的 release 版本为3.4.14,下载并安装。 打开网址 https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar
ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。 ZooKeeper 的架构通过冗余服务实现高可用性。 Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。 一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸