ZK出现:zxid 0x02 our last zxid is 0x0 client must try another server

现象:Refusing session request for client /ip:30538 as it has seen zxid 0x5009678d0 our last zxid

       拒绝来自zkCli的请求,因为其携带的事务ID(zxid)  > zkServer的事务ID.

解决方法:重启所有客户端(例如用到zookeeper的web项目).

原因:在重启ZK的时候,曾经删除过数据目录,这样造成zkid存在问题。客户端记录的是某个id,而服务端重启之后并且删除数据目录之后,id编号从0x0开始。

    Zookeeper的zxid会由于状态的变更主键递增1,为了保证事务的顺序一致性,zookeeper采用了递增的事务id号(zxid)来标识事务。这在选举的时候启动至关重要。

    所以一旦客户端的id比服务端大,服务端是拒绝连接的。

问题:事务id由谁分配?一个时刻内一台client 与server之间只有一个吗?zk集群内同步吗?保存在哪?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值