您现在的位置是:首页» windows系统» zookeeper解决什么问题,zookeeper配置遇到常见问题

zookeeper解决什么问题,zookeeper配置遇到常见问题

2024-07-13 14:16:28
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。1.概述 评论: ZooKeeper常见问题 你曾经在工作中使用动物园主吗?你知道它是什么,它有什么用处吗?使用ZooKe

本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。

1.概述

评论: ZooKeeper常见问题

你曾经在工作中使用动物园主吗?你知道它是什么,它有什么用处吗?

使用ZooKeeper作为“dubbo注册中心”和使用ZooKeeper实现“分配锁”。

ZooKeeper,它是一个开放源码的「分布式协调服务」,它是一个集群的管理者,它将简单易用的接口提供给用户。

它可以实现数据发布/订阅、负载平衡、命名服务、分布式协调/通知、集群管理、主选、分布式锁定和基于Zookeeper的分布式队列等功能。

动物园主的“用途”:命名服务、配置管理、群组管理、分布式锁定、队列管理

**2、说下什么是命名服务,什么是配置管理,又什么是集群管理吧

名称服务是:**

命名服务是指通过「指定的名字以访问资源或服务地址。 Zookeepers可以创建“全局唯一的路径」,这个路径可以作为名称使用。命名的实体可以是“群中的机器,服务的地址,或者远程对象等。一些分布式服务框架中的服务地址列表(RPC、RMI),通过使用命名服务,客户端应用程序可以根据特定名称获取资源的实体、服务地址、提供者信息等。「配置管理」 :

在实际项目开发中,我们经常使用.properties或xml需要配置很多信息,例如,数据库连接信息、fps地址端口等。因为你的程序通常被分发和部署在不同的机器上(如果你是一个单个应用程序,我不会这么说),如果该程序的配置信息“保存到zk'sznode节点”,当你要修改配置,就是说,当诺德发生变化时,您可以在zk中更改目录节点的内容,使用"每个客户端的监视器通知",从而更改配置。「集群管理」

集团管理包括集团监控和集团控制,事实上,它监控了集群机的状态,拆卸机器并加入机器.动物园主可以协助管理收集设备,它可以实时监测znode节点的变化,一旦你找到挂着的机器,机器将从zk中切断,使用临时目录节点将被删除,所有其他机器都被通知了。新机器还添加了类似的酱紫色,所有机器收到通知,一个新的兄弟目录已经添加.

动物园管理员有几种类型. 动物园管理员的数据模型是什么?

动物园管理者数据模型

ZooKeeper的视图数据结构,很像Unix文件系统,也是树状的,这样可以确定每个路径都是唯一的。zookeeper的节点统一叫做「znode」,它是可以通过「路径来标识」,结构图如下:

四种Znode

根据节点的生命周期,znode可以分为四个类型,分别是持久节点(PERSISTENT)、持久顺序节点(PERSISTENT_SEQUENTIAL)、临时节点(EPHEMERAL)、临时序列节点(EPHEMERAL_SEQUENTIAL)

持久节点(PERSISTENT)

当这些节点创建时,它们总是存在于Zk服务器上。持久顺序节点

(PERSISTENT_SEQUENTIAL)

它的基本特性与持久节点不同,因为它增加序列。 父节点保持一个自调整的数值,以确定子节点创建的顺序。

临时节点(EPHEMERAL)

临时节点的生命周期与客户端的会话绑定,一旦客户端会话失效(非TCP连接断开),那么这个节点就会被自动清理掉。zk规定临时节点只能作为叶子节点。

临时序列节点(EPHEMERAL_SEQUENTIAL)

基本特征将序列特征添加到临时节点中.

在节点中存储的是什么?每个节点的最大数据数不能超过什么?

在Znode节点中存储的是什么?

Znode数据节点的代码如下:

哈哈,Znode包含"存储数据,访问权限,子节点参考,节点状态信息",如图:

每个节点的最大数据有多大

为了保证高吞吐量、低延迟、数据一致性,Znode只适合储存非常小的数据,不能超过1M,最好少于1K。

5、znode节点上的监听机制是什么?Zookeeper watch机制?

监视器监控机制

Zookeeper 允许客户端向服务端的某个Znode注册一个Watcher监听,当服务端指定的一些事件触发此监视器时,服务端向指定客户端发送事件通知,实现分布式通知函数,然后,客户根据监视器通知状态和事件类型进行业务更改。

监视器可以被理解为Znode上的客户端注册触发器,当Znode节点节点发生更改(附加删除和修改检查)时触发与Znode有关的注册事件,注册客户端收到异步通知,然后进行业务更改。

监视器监控机制的工作原理

ZooKeeper的Watcher机制主要包括客户端线程、客户端 WatcherManager、Zookeeper服务器三部分。客户端将Watcher注册到ZooKeeper服务器,而Watcher对象存储在客户端的WatchManager中。当zookeeper服务器触发watcher事件后,会向客户端发送通知, 客户端线程从 WatcherManager 中取出对应的 Watcher 对象来执行回调逻辑。

观察者功能的概述

「一次性:」一个Watch事件是一次性的触发器,一旦触发,客户端只能一次接收信息。 「异步的:」Zookeeper服务器以非同步的方式向客户端发送监视器通知事件,不能期望能够监测每个节点的变化,Zookeeper只能保证最终的一致性,不能保证强大的一致性。 「轻量级监视器通知非常简单,它只通知已经发生的事件,并且不发送事件对象的内容。 「客户端串行:」执行客户端 Watcher 回调的过程是一个串行同步的过程。

使用getData,exists,getChildren方法注册监视器使用 create,delete,setData方法触发监视器

6.动物园主的特征

动物园管理员确保以下分布一致性特征:

「顺序一致性」:从同一客户端发起的事务请求,最终将会严格地按照顺序被应用到 ZooKeeper 中去。 「原子性所有事务请求的处理结果与整个集群的所有机器的应用程序情况一致,也就是说,整个集群的所有机器都成功地应用了一个事务或没有应用它。 「单一视图无论客户端连接到 ZooKeeper服务器,它们看到的服务器数据模型都是相同的。 「可靠性:」 一旦服务端成功地应用了一个事务,并完成对客户端的响应,那么该事务所引起的服务端状态变更将会被一直保留下来。 「实时(最终一致性):」 Zookeeper 仅仅能保证在一定的时间段内,客户端最终一定能够从服务端上读取到最新的数据状态。

动物园主如何确保交易的有序一致性?

这个问题的答案来自下面的文章:与 ZooKeeper同一个顺序对话

https://time.geekbang.org/column/article/239261

需要了解事务ID,即zxid。ZooKeeper通过比较zxid和点的机器ID来选择新的主点。zxid由 Leader节点生成,有新写入事件时,领导生成新zxid和与建议的广播,每个端点本地存储当前最后事务的zxid,zxid是递增的,所以谁的zxid越大,显示谁有最新的数据。

生成ZXID的规则如下:

ZXID由两个部分组成:

任期:完成本次选举后,直到下次选举前,由同一Leader负责协调写入;交易计数器:单模式增加,每当它们生效时写字,并添加一个计数器。低的32位ZXID是一个计数器,因此在同一期间,ZXID是连续的,每个端点也保存了其最新的有效的ZXID,通过比较新提出的ZXID与其最新的ZXID"1",以确保交易是严格按照顺序执行。

你提到了领导,你知道 Zookeeper的服务器有多少角色吗? Zookeeper的服务器的工作条件是多少?

动物园主服务器角色Zookeeper集群中,有Leader、Follower和Observer三种角色

「Leader」

Leader Server是ZooKeeper集群工作机制的核心,其主要功能是:唯一调用和处理事务请求的调用器,调用以有序处理集群事务的调用器,调用以内部服务的调用器

「Follower」

Follower服务器是ZooKeeper集群状态的跟随者,其主要工作:处理客户端非事务请求,转发事务请求给Leader服务器、参与事务请求Proposal的投票、参与Leader选举投票

「Observer」

Observer 3.3.0版本开始引入一个服务器角色,它充当一个观察者角色——观察ZooKeeper集群的最新状态变化并将这些状态变更同步过来。它的工作是处理客户提出的非交易请求,未经任何形式的投票,将交易请求转移到领导服务器上

动物园管理员下的服务器的工作状态

服务器有四个状态,每个状态是LOOKING、FOLLOWING、LEADING、OBSERVING。

LOOKING:寻找Leader状态。当服务器处于该状态时,它会认为当前集群中没有 Leader,因此需要进入 Leader 选举状态。 FOLLOWING追随者状态表示当前服务器角色是追随者。 LEADING领导状态表示当前服务器角色是领导。 OBSERVING:观察者状态。表明当前服务器角色是Observer。

您说服务器角色是基于ZooKeeper集群的,所以为什么不绘制ZooKeeper集群部署图?ZooKeeper如何确保数据与主节点一致?

ZooKeeper集群部署图

ZooKeeper群是一个主要的多方向结构:

如果您写数据,先写到主服务器(主节点),然后通知服务器。 如果数据被读取,则可以从主机服务器和服务器上读取。

ZooKeeper如何确保主要节点的数据一致性

我们知道集群是主从部署结构,要保证主从节点一致性问题,无非就是两个主要问题:

使用动物园主ZAB协议(Zookeeper Atomic Broadcast,Zookeeper原子广播协议)为了确保主要节点的数据一致性,ZAB协议支持「崩溃恢复和消息广播」两个模型很好地解决了这两个问题:

崩溃恢复:Leader挂了,进入该模式,选一个新的leader出来 消息广播:把更新的数据,从Leader同步到所有Follower

领导服务器被暂停,所有集群中的服务器被输入LOOKING状态,首先,它们会创建新的领导服务器的选举;接着,新的 Leader 服务器将数据与群集中的 Follower 服务同步,当该集群中超过一半的机器与领导服务器同步时,退出恢复模式,输入消息广播模式。Leader服务器开始接收客户端的事务请求,生成处理事务请求的事务提议。

XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com