zookeeper
文章平均质量分 78
sofency
stay hungry stay foolish
展开
-
Zookeeper监控命令
zookeeper支持某些特定的四字命令与其交互,它们大多数是查询命令,用于获取zookeeper服务的当前状态以及相关的信息命令描述conf输出相关服务配置的详细信息,比如端口,zk数据以及日志配置路径,最大连接数,session超时时间,serverId等cons列出所有连接到这台服务器的客户端连接/会话的详细信息,包括"接收/发送"的包数量,session id 操作延迟,最后的操作执行等信息crst重置当前这台服务器所有连接/会话的统计信息dump列原创 2020-09-21 20:28:43 · 237 阅读 · 0 评论 -
zookeeper集群的leader选举
服务器启动时期的Leader选举在集群初始化阶段,当有一个服务器的server1启动时,其单独无法进行和完成leader选举,当第二台服务器server2启动时,此时两台机器可以相互通信,每台机器都试图找到leader, 于是进入leader选举过程每个server发出一个投票.由于初始情况,server1和server2都会将自己作为 leader服务器来进新货投票,每次投票会包含所推举的服务器的myid和zxid,使用(myid,zxid)来表示.此时server1的投票为(1,0),server原创 2020-09-20 23:12:09 · 144 阅读 · 0 评论 -
Zookeeper集群搭建以及zab协议
单机环境下,jdk zookeeper安装完毕,基于一台虚拟机,进行zookeeper的伪集群搭建,zookeeper集群中包含三个节点,节点对外提供服务端口号分别为2181,2182,2183基于zookeeper-3.4.10复制三份zookeeper安装好的服务器文件,目录名称分别为zookeeper2181,zookeeper2182,zookeeper2183cp -r zookeeper-3.4.10 zookeeper2181cp -r zookeeper-3.4.10 zookee原创 2020-09-20 22:17:58 · 306 阅读 · 0 评论 -
zookeeper分布式锁的设计思路与实现
分布式锁有多种实现方式,比如通过数据库,redis都可以实现,作为分布式协同工具zookeeper也有着标准的实现方式.设计思路:每个客户端往/Locks下创建临时有序节点/Locks/Lock_,创建成功之后/Locks下面会有每个客户端对应的节点,如/Locks/Lock_0000000001客户端取得/Locks下子节点,并进行排序,判断最前面的是否为自己,如果自己的锁节点在第一位,代表获取锁成功.如果自己的锁节点不在第一位,则监听自己前一位的锁节点,例如自己锁节点Lock_00000000原创 2020-09-20 19:45:57 · 108 阅读 · 0 评论 -
zookeeper事件监听机制
watcher的概念zookeeper提供了数据的发布订阅功能,多个订阅者可同时监听某一特定主题对象,当该主题对象的自身状态发生变化时(例如节点内容发生变化,节点下的子节点列表发生变化)会实时,主动通知订阅者;zookeeper采用watcher机制实现了发布/订阅功能.该机制在被订阅者对象发生变化的时候会异步的通知客户端,因此客户端不必在watcher注册后轮询阻塞,从而减轻客户端的压力.watcher的架构watcher实现由三部分组成zookeeper服务端zookeeper客户端..原创 2020-09-20 00:44:21 · 819 阅读 · 0 评论