Zookeeper---系统学习
1、概述
1.1 Zookeeper解决了什么问题?
分布式环境中 协调和管理服务 是一个复杂的过程;
Zookeeper通过 其简单的架构和API 解决了这个问题,Zookeeper允许程序员可以专注于核心应用程序逻辑,而不必担心应用程序的分布式特性;
1.2 Zookeeper架构
Client(客户端)
分布式集群中的一个节点,从Zookeeper服务器访问消息;
Server(服务器)
Zookeeper总体中的一个节点,为客户端提供服务;
Ensemble(ZooKeeper服务器组)
形成ensemble所需的最小节点数为3;
Leader
服务节点,当连接任何节点都失败时,将自动执行恢复,Leader将被选出;
Follower
跟随Leader指令的节点;
Session(会话)
会话对于ZooKeeper的操作非常重要;
会话中的请求按FIFO顺序执行;
一旦客户端连接到服务器,将建立会话并向客户端分配会话ID ;
客户端以特定的时间间隔发送心跳以保持会话有效。如果ZooKeeper集合在超过服务器开启时指定的期间(会话超时)都没有从客户端接收到心跳,则它会判定客户端死机。
会话超时通常以毫秒为单位。当会话由于任何原因结束时,在该会话期间创建的临时节点也会被删除。
Watches(监视)
监视是一种简单的机制,使客户端收到关于ZooKeeper集合中的更改的通知;
客户端可以在读取特定znode时设置Watches。Watches会向注册的客户端发送任何znode(客户端注册表)更改的通知。
Znode更改是与znode相关的数据的修改或znode的子项中的更改。只触发一次watches。如果客户端想要再次通知,则必须通过另一个读取操作来完成。当连接会话过期时,客户端将与服务器断开连接,相关的watches也将被删除。
1.3 Zookeeper工作流
一旦Zookeeper启动后,它将等待客户端的连接;
1.4 Zookeeper安装
Zookeeper服务器是用java编写的,需要运行在JDK1.6及以上;
1.5 Zookeeper命令
命令在/apache-zookeeper-3.5.6-bin/bin目录下
./zkServer.sh start
Zookeeper服务器启动
./zkServer.sh stop
Zookeeper服务器停止
./zkCli.sh
Zookeeper客户端启动
quit
客户端退出
ls /
查看注册的dubbo服务
ls /dubbo-***
查看Dubbo对外提供的服务接口
ls /dubbo-***/接口名称/consumers
查看某个Dubbo接口的消费者
ls /dubbo-***/接口名称/providers
查看某个Dubbo接口的提供者
1.6 zkCli
Zookeeper命令行界面(Cli)用于 与Zookeeper集合进行交互以进行开发;
要执行zkCli,首先需要先打开zkServer(zkServer.sh start),再打开zkCli(zkCli.sh);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)