ZooKeeper-数据读写流程

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

图片

前面我们介绍介绍了几个常用的代理服务器,本章节我们讲来讲解Zookeeper这个中间件。

上个小节我们介绍了Zookeeper的选举流程,本小节来讲解一个读写流程,作为集群对外提供服务,而我们的客户端连接的时候也会把所有的地址都写到配置文件里面,那么读写数据的时候他具体是怎么实现的呢?

Zookeeper读流程

我这里使用一个测试python程序来连接到集群进行测试,代码里面写了3个Zookeeper地址。

zk_hosts = '192.168.31.140:2181,192.168.31.141:2181,192.168.31.142:2181'

执行写入程序,从下面的网络连接可以看到,我们虽然写了3个zk地址,但是实际上他只会随机连接其中一个,如果连接失败,他则重新选择一个进行连接(业务程序不受影响,从PID来看,他没有变化)。

图片

图片

我们前面介绍了zk的2个角色,leader是可读可写的,follower只读,如果我的客户端连接刚好连接到follower以后,他是如何来出来我的的写请求呢?下面都是修改了日志级别才看到的日志情况。

sed -i 's/INFO/DEBUG/g' logback.xml

连接leader 写日志

#leader日志 
2025-04-19 15:39:38,194 [myid:] - DEBUG [ProcessThread(sid:2 cport:-1)::o.a.z.s.SessionTrackerImpl@309] - Checking session 0x200003287770000
2025-04-19 15:39:38,194 [myid:] - DEBUG [ProcessThread(sid:2 cport:-1)::o.a.z.s.ZooKeeperServer@2012] - Permission requested: 2 
2025-04-19 15:39:38,194 [myid:] - DEBUG [ProcessThread(sid:2 cport:-1)::o.a.z.s.ZooKeeperServer@2013] - ACLs for node: [31,s{'world,'anyone}]
2025-04-19 15:39:38,194&nbs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值