20201116

2020-11-16 18:33:14,468 [myid:] - INFO  [NIOWorkerThread-8:ZooKeeperServer@1385] - Refusing session request for client /127.0.0.1:57406 as it has seen zxid 0x6da our last zxid is 0x2af client must try another server

2020-11-16 18:33:14,468 [myid:] - INFO [NIOWorkerThread-8:ZooKeeperServer@1385] - Refusing session request for client /127.0.0.1:57406 as it has seen zxid 0x6da our last zxid is 0x2af client must try another server


可以看出客户端一直在重连!使用连接不上。


2、为什么会这样呢?

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

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

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