Zookeeper 集群

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 你好看官,里面请!今天笔者讲的是Zookeeper 集群。不懂或者觉得我写的有问题可以在评论区留言,我看到会及时回复。 注意:本文仅用于学习参考,不可用于商业用途,如需转载请跟我联系。

Zookeeper 集群

Zookeeper是一个开源的分布式协调服务,它提供了高可用性和高性能的分布式应用程序的基础服务。Zookeeper可以为分布式应用程序提供统一的命名空间、配置管理、状态同步等功能,并且被广泛用于Apache Hadoop、Kafka等分布式系统中。

基本概念

以下是Zookeeper集群的一些基本概念:

集群角色

Zookeeper集群由多个节点组成,其中每个节点可以扮演不同的角色。Zookeeper节点的三种角色分别为Leader、Follower和Observer。

选举机制

Zookeeper使用Paxos算法实现了一个选举机制,用于在集群中选择一个Leader节点。Leader节点负责处理所有写操作,而Follower和Observer节点则只能处理读操作。

Znode

Zookeeper中的最小数据单元为Znode,它类似于Unix中的文件系统中的节点。Znode可以包含子节点,并且可以存储数据。

Watcher

Watcher是Zookeeper中的一个重要概念,它允许客户端在数据发生变化时接收通知。

部署和配置Zookeeper集群

接下来,我们将介绍如何部署和配置Zookeeper集群:

安装Zookeeper

首先,您需要从Zookeeper官方网站下载Zookeeper安装包,并解压缩到您的服务器上。然后,您需要编辑zoo.cfg文件,指定Zookeeper集群中各个节点的IP地址和端口号。

启动Zookeeper节点

启动Zookeeper节点前,请确保已经设置好JAVA_HOME环境变量。使用以下命令启动Zookeeper:

./zkServer.sh start

这个命令将启动单个Zookeeper节点,并且该节点将自动加入到集群中。

启动Zookeeper集群

要启动Zookeeper集群,您需要在不同的服务器上分别启动多个Zookeeper节点。同时,您还需要指定一个节点作为Leader节点。

配置Zookeeper集群

要配置Zookeeper集群,您需要在配置文件中添加以下内容:

server.X=hostname:port:port

其中,X是Zookeeper节点的编号(从1开始),hostname是该节点的主机名或IP地址,后面的两个port表示该节点监听的客户端端口和Leader选举端口。您需要为集群中的每个节点都添加相应的配置。

测试Zookeeper集群

使用以下命令测试Zookeeper集群是否正常工作:

echo ruok | nc localhost 2181

如果返回“imok”,则表示Zookeeper集群正常工作。


重要的概念和操作

在使用Zookeeper集群时,还需要了解一些其他重要的概念和操作:

ACL(访问控制列表)

Zookeeper支持ACL,用于限制对Znode的访问。您可以为每个Znode指定不同的ACL,以确保只有授权用户才能访问该节点。

四字命令

Zookeeper提供了一些特殊的四字命令,用于管理和监控Zookeeper集群。例如,使用“stat”命令可以查看当前集群状态,使用“conf”命令可以查看集群配置信息。

事务日志

Zookeeper会将所有修改操作记录到磁盘上的事务日志中,以实现数据的持久化存储。如果节点发生故障,Zookeeper可以从事务日志中恢复数据。

集群状态

Zookeeper集群有三种状态:LOOKING、LEADING和FOLLOWING。LOOKING状态表示当前节点正在竞选Leader;LEADING状态表示当前节点是Leader;FOLLOWING状态表示当前节点是Follower或Observer。

动态配置

Zookeeper支持动态配置,允许您在运行时更改节点配置而无需重启整个Zookeeper集群。您可以使用“set”命令修改节点配置,并使用“get”命令查看当前配置。

下面是Zookeeper集群的一些高级操作:

使用ACL

您可以通过以下命令设置Znode的ACL:

setAcl /path auth:username:password:perms

其中,/path是要设置ACL的Znode路径,auth表示使用用户名和密码进行身份验证,username和password是您的用户名和密码,perms是权限设置。

使用四字命令

您可以使用以下命令执行Zookeeper的四字命令:

echo stat | nc localhost 2181

其中,“stat”是所要执行的四字命令。

查看事务日志

您可以使用以下命令查看Zookeeper事务日志中的内容:

bin/zkTxnLogToolkit.sh --dump <txnlog_file>

其中,<txnlog_file>是事务日志文件名称。

查看集群状态

您可以使用以下命令查看Zookeeper集群的状态:

echo mntr | nc 127.0.0.1 2181

这个命令将返回一个包含各种统计信息的输出,如zk_version、zk_avg_latency等。

动态配置

您可以使用以下命令动态配置Zookeeper节点:

set /path value

其中,/path是要修改的Znode路径,value是新值。如果/path不存在,则会创建一个新的Znode。

以上是Zookeeper集群的一些高级操作。通过这些操作,您可以更好地利用Zookeeper的强大功能,并满足分布式应用程序的不同需求。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
7月前
|
Java Shell Linux
Zookeeper单机&集群安装
Zookeeper单机&集群安装
61 1
|
7月前
|
存储 分布式计算 资源调度
Hadoop【环境搭建 04】【hadoop-2.6.0-cdh5.15.2.tar.gz 基于ZooKeeper搭建高可用集群】(部分图片来源于网络)
【4月更文挑战第1天】Hadoop【环境搭建 04】【hadoop-2.6.0-cdh5.15.2.tar.gz 基于ZooKeeper搭建高可用集群】(部分图片来源于网络)
193 3
|
2月前
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
66 1
|
2月前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
43 1
|
2月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
43 1
|
2月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
50 1
|
2月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
49 0
|
5月前
|
存储 数据库
zookeeper 集群环境搭建及集群选举及数据同步机制
zookeeper 集群环境搭建及集群选举及数据同步机制
76 2
|
4月前
|
开发工具
部署安装zookeeper集群
部署安装zookeeper集群
|
6月前
|
Java 网络安全
分布式系统详解--框架(Zookeeper-简介和集群搭建)
分布式系统详解--框架(Zookeeper-简介和集群搭建)
129 0