【易客吧】_全网激活码总代_激活码商城

您现在的位置是:首页 > 热门资讯 > 正文

热门资讯

ZooKeeper 可视化:让分布式协调一目了然 (zookeeper的主要功能)

用户投稿2024-04-15热门资讯28
ZooKeeper 可视化:让分布式协调一目了然简介ZooKeeper 是一种开源分布式协调服务,在构建和管理分布式系统时扮演着至关重要的角色。它提供了一种集中式的方式来存储和管理共享数据,从而确保系统中的各个组件始终保持同步和协调。ZooKeeper 的主要功能包括:协调: ZooKeeper 充当分布式系统中的协调器,确保各个节点之间的一致性和可靠性。命名: 它提供了一种命名服务,允许组件在分布式系统中发现和连接彼此。配置管理: ZooKeeper 可以存储和管理配置数据,从而允许系统在不中断的情况下动态地更新配置。群集管理: 它有助于管理分布式群集,提供选举领导者、成员身份管理和故障检测等功能。ZooKeeper 可视化ZooKeeper 可视化工具允许用户以交互方式探索和监视 ZooKeeper 集群。这些工具提供了一个图形用户界面 (GUI),使您可以轻松地查看集群的拓扑结构、数据内容和事件。ZooKeeper 可视化工具有多种 ZooKeeper 可视化工具可用,每个工具都提供不同的功能和特性。以下是一些流行的选项:ZooInspector: 一个开源工具,提供了一个交互式的 GUI,用于浏览 ZooKeeper 集群。它支持数据查看、编辑和管理。Apache Ambari: 一个企业级工具,提供对 ZooKeeper 集群的管理和可视化功能,作为更广泛的 Apache Hadoop 生态系统的一部分。Insight.io: 一个基于云的监控和可视化平台,支持 ZooKeeper 集群以及其他分布式系统。ZooKeeper 可视化的优势ZooKeeper 可视化工具提供了以下优势:简化故障排除: 通过可视化集群拓扑和数据内容,可以快速识别和诊断问题。提高可观察性: 可视化工具提供实时监控,使您可以跟踪关键指标并检测性能问题。改进协作: 共享 ZooKeeper 仪表板可以促进团队之间的协作,并确保每个人都对集群的状态有相同的理解。优化性能: 通过可视化数据使用和负载,可以识别潜在的瓶颈并优化群集性能。ZooKeeper 可视化示例让我们使用 ZooInspector 来展示 ZooKeeper 可视化的基本原理。1. 安装 ZooInspector: 从[官方网站](下载 ZooInspector。 2. 连接到 ZooKeeper 集群: 在 ZooInspector 中,连接到您的 ZooKeeper 集群。提供主机名和端口号。 3. 查看集群拓扑: ZooInspector 将显示一个集群拓扑,显示服务器、连接和数据节点。 4. 浏览数据: 展开数据节点以查看其内容。您可以编辑数据并创建新的数据节点。 5. 监视事件: ZooInspector 实时显示 ZooKeeper 事件,包括创建、删除和更新操作。结论ZooKeeper 可视化工具是管理和监视分布式协调系统的重要工具。它们提供了一个图形化界面,使您可以轻松地探索集群拓扑、数据内容和事件。这些工具简化了故障排除、提高了可观察性、改进了协作并优化了性能。

消息队列之zookeeper

分布式协调技术----zookeeper 分布式协调技术是用来解决分布式环境中多个进程间的同步控制,使他们能有序的访问某种临界资源,防止造成“脏数据”的后果,分布式并不是一个简单的调度算法就能轻易解决的,这是一种误解。 如果进程全部是在一台机器上确实这么久好办,但是出于分布式的环境下该怎么解决呢?给大家分析一下这个图,图中的三台机器,每个程序个跑一个应用程序,通过网络图将此连接起来,构成一个系统为用户提供服务,对用户来说这是个透明的架构的系统,我们可以把这个系统称之为分布式系统。 在分析一下这个分布式系统是如何对进程进行调度,假设在server1上挂载了一个资源,三个分布式的进程都要来竞争这个资源,但是又不希望他们同时访问,此时就需要一个“协调器”,让他们有序获取资源,“协调器”则被称为锁。 比如“进程-1”说明程序在使用该资源时会先获取锁,“进程1”获取锁就会对资源独占,使用完将锁释放,让其他进程来获得锁。 这个锁则是分布式锁,也是分布式协调技术。 分布式做的比较好的就是Google的Chubby和Apache的Zookeeper,Chubby是非开源的,后来雅虎模仿Chubby开发出了Zookeeper,也实现了类似的分布式功能,并把zookeeper作为开源程序捐给了Apache。 Zookeeper用来构建我们的系统,不仅Bug少而且节约成本。 Zookeeper的优点是一种高可用、高性能且一直的开源协调工具。 并且提供了“分布式锁服务”,功能强大,可以配置维护、组服务、分布式通知及分布式消息队列等。 在性能方面它采用了Zab协议,数据结构用的Znode,在数据结构上定义了原语,通知机制用的Watcher机制,有严格的序列访问控制,不会因为一个节点的错误而崩溃。 (1)给Zookeeper起了俩主节点,主节点-A master-,主节点-B master-,启动后都像zookeeper注册一个节点,主节点-A变成了主节点,主节点-B变成了备用节点,对俩Master进程进行调度。 (2)主节点-A挂了,它注册的节点被自动删除,感知节点发起选举,经过选举后主节点-B变成了主节点,替代了主节点-A。 (3)Master恢复,它会在向zookeeper注册一个节点master-,再次选举后主节点-B依旧是主节点,主节点A变成了备用节点。 安装配置步骤: 试验机器:192.168.10.10 hostname:zk1 192.168.10.11hostname:zk2 192.168.10.12 hostname:zk3 1.安装jdk [^_^] ~# tar xf -C /usr/local/ [^_^] ~# mkdir /usr/local/java [^_^] java# mv jdk1.8.0_171 /usr/local/java [^_^] ~# cat /etc/profile.d/ JAVA_HOME=/usr/local/java/jdk1.8.0_131 JRE_HOME=/usr/local/java/jdk1.8.0_131/jre CLASS_PATH=.:$JAVA_HOME/lib/:$JAVA_HOME/lib/:$JRE_HOME/lib PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH export JAVA_HOME JRE_HOME CLASS_PATH [^_^] ~# source /etc/profile.d/ 验证:java -version 2.安装zookeeper [^_^] ~# cat /etc/hosts 127.0.0.1localhost localhost4 4 ::1 localhost localhost6 6 192.168.36.10 zk1 192.168.36.11 zk2 192.168.36.12 zk3 [^_^] ~# cat /etc/profile.d/ #Set Zookeeper Environment export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.11 export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf [^_^] ~# source /etc/profile.d/ [^_^] ~#cp /usr/local/zookeeper/conf/zoo_/usr/local/zookeeper/conf/ [^_^] ~#mkdir -p /usr/local/zookeeper/data/log [^_^] ~#echo 1 >/usr/local/zookeeper/data/myid#三台zookeeper的myid是不一样的 [^_^] ~# egrep -v ^$|# /usr/local/zookeeper-3.4.11/conf/ tickTime=2000 initLimit=10 syncLimit=5 dataDir=/tmp/zookeeper dataLogDir=/tmp/zookeeper/log clientPort=2181 #服务端口 server.1=zk1:2888:3888 #2888是follower连leader的端口,3888是选leader端口 server.2=zk2:2888:3888 server.3=zk3:2888:3888 [^_^] ~# cd /usr/local/zookeeper-3.4.11/bin/ [^_^] bin# ./ start & [^_^] bin#jps #查看是否启动成功 1155 Jps 1093 QuorumPeerMain #QuorumPeerMain是zookeeper进程 [^_^] bin# ./ status#查节点状态 [^_^] bin# -server zk1:2181,zk2:2181,zk3.:2181#可以创建zk集群

ZooKeeper 可视化:让分布式协调一目了然 (zookeeper的主要功能) 第1张

开源的分布式协调服务—Zookeeper

名词概念

Zookeeper集群中有三种角色:Leader、Follower、Observer。Leader提供读和写服务。Follower和Observer能提供读服务。Observer和Follower的区别就在于Ovserver不参与Leader选举,不参与写操作的过半成功策略。

客户端会话,一个客户端连接是指客户端和服务端之间的一个TCP长连接。客户端启动的时候,首先会和服务器建立一个TCP长连接,从第一次建立连接开始,会话(session)的生命周期就开始了。通过这个连接,客户端能够通过心跳检测与服务器保持有效的会话,也能够向Zookeeper服务器发送请求,同时还能接受服务器的Watch事件通知。

Zookeeper数据模型中的一个单元,我们称之为数据节点。Zookeeper将所有数据存储在内存中,数据模型是一棵树,由斜杠进行分割的路径,就是一个Znode。如/app。每个Znode都能保存自己的数据内容,还会保存属性信息。4. 版本

每个Znode都有一个叫作Stat的数据结构,Stat里记录了Znode的三个数据版本,分别是version(当前Znode的版本)、cversion(当前Znode子节点的版本)、aversion(当前Znode的ACL版本)5. Watcher(事件监听器)

Watcher是Zookeeper中一个很重要的特性,Zookeeper允许用户在指定节点上注册一些Watcher,并且在一些特定事件触发的时候,Zookeeper服务端会将事件通知到感兴趣的客户端,该机制是Zookeeper实现分布式协调服务的重要特性。6. ACL

Zookeeper采用ACL策略来进行权限控制,它定义了五种权限:

注意:CREATE和DELETE这两种权限是针对子节点的权限控制

连接成功之后,系统会输出Zookeeper的相关环境及配置信息等信息

很少直接使用了,接口介绍省略

ZkClient是github上一个开源的zookeeper客户端,在原生API的基础上进行了包装,更加易用。同时还实现了如Session超时重连、Watcher反复注册等功能。

直接上代码:

Curator是Netflix公司开源的客户端框架。它实现了连接重连、Watcher反复注册、重试策略和NodeExistsException异常解决等等。

直接上代码:

ZooKeeper 的功能和原理初探

在公司核心系统的开发过程中用到了ZooKeeper,简称zk,用于搭建分布式核心环境,开发过程中也经常会遇到zk出现的问题,看了几篇博客了解和总结一下zk的基本原理。 ZooKeeper主要有几个重要的概念,简单总结下: ZooKeeper中主要有三种角色:Leader、Follower、Observer 一个 ZooKeeper 集群同一时刻只会有一个 Leader,其他都是 Follower 或 Observer。 ZooKeeper 集群的所有机器通过一个 Leader 选举过程来选定一台被称为『Leader』的机器,Leader服务器为客户端提供读和写服务。 Follower 和 Observer 都能提供读服务,不能提供写服务。 两者唯一的区别在于,Observer机器不参与 Leader 选举过程,也不参与写操作的『过半写成功』策略,因此 Observer 可以在不影响写性能的情况下提升集群的读性能。 每个子目录项如 NameService 都被称作为znode,和文件系统一样,我们能够自由的增加、删除znode,在一个znode下增加、删除子znode,唯一的不同在于znode是可以存储数据的。 Session 是指客户端会话。 在ZooKeeper 中,一个客户端连接是指客户端和 ZooKeeper 服务器之间的TCP长连接。 ZooKeeper 对外的服务端口默认是2181,客户端启动时,首先会与服务器建立一个TCP连接,从第一次连接建立开始,客户端会话的生命周期也开始了,通过这个连接,客户端能够通过心跳检测和服务器保持有效的会话,也能够向 ZooKeeper 服务器发送请求并接受响应,同时还能通过该连接接收来自服务器的 Watch 事件通知。 Session 的 SessionTimeout 值用来设置一个客户端会话的超时时间。 当由于服务器压力太大、网络故障或是客户端主动断开连接等各种原因导致客户端连接断开时,只要在SessionTimeout 规定的时间内能够重新连接上集群中任意一台服务器,那么之前创建的会话仍然有效。 zookeeper的结构其实就是一个树形结构,leader就相当于其中的根结点,其它节点就相当于follow节点,每个节点都保留自己的内容。 zookeeper的节点分两类: 持久节点 和 临时节点 持久节点:所谓持久节点是指一旦这个 树形结构上被创建了,除非主动进行对树节点的移除操作,否则这个 节点将一直保存在 ZooKeeper 上。 临时节点:临时节点的生命周期跟客户端会话绑定,一旦客户端会话失效,那么这个客户端创建的所有临时节点都会被移除。 有四种类型的znode: 1、PERSISTENT-持久化目录节点 客户端与zookeeper断开连接后,该节点依旧存在 2、PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点 客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号 3、EPHEMERAL-临时目录节点 客户端与zookeeper断开连接后,该节点被删除 4、EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点 客户端与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号 每个 节点除了存储数据内容之外,还存储了 节点本身的一些状态信息。 用 get 命令可以同时获得某个 节点的内容和状态信息 在 ZooKeeper 中,version 属性是用来实现乐观锁机制中的『写入校验』的(保证分布式数据原子性操作)。 Zookeeper 的核心是原子广播,这个机制保证了各个Server之间的同步。 实现这个机制的协议叫做Zab协议。 Zab协议有两种模式,它们分别是恢复模式(选主)和广播模式(同步)。 当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数Server完成了和 leader的状态同步以后,恢复模式就结束了。 状态同步保证了leader和Server具有相同的系统状态。 在ZooKeeper中,能改变ZooKeeper服务器状态的操作称为事务操作。 一般包括数据节点创建与删除、数据内容更新和客户端会话创建与失效等操作。 对应每一个事务请求,为了保证事务的顺序一致性,ZooKeeper都会为其分配一个全局唯一的事务ID,用 ZXID 表示,通常是一个64位的数字。 每一个 ZXID对应一次更新操作,从这些 ZXID 中可以间接地识别出 ZooKeeper 处理这些事务操作请求的全局顺序。 ZooKeeper允许用户在指定节点上注册一些 Watcher,并且在一些特定事件触发的时候,ZooKeeper 服务端会将事件通知到感兴趣的客户端上去。 该机制是 ZooKeeper 实现分布式协调服务的重要特性。

若对本页面资源感兴趣,请点击下方或右方图片,注册登录后

搜索本页相关的【资源名】【软件名】【功能词】或有关的关键词,即可找到您想要的资源

如有其他疑问,请咨询右下角【在线客服】,谢谢支持!

ZooKeeper 可视化:让分布式协调一目了然 (zookeeper的主要功能) 第2张

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
你上次访问网站的时间为:24-05-17,19:49:28 你第24访问网站的时间为:24-05-17 19:49:30