zookeeper:Invalid session id 引起客户端不停地自动重连

来源:互联网 发布:淘宝怎么投诉药店 编辑:程序博客网 时间:2024/05/16 19:40

场景重现:

场景1:不停止clients,删除datadirs

场景2:不停止clients,删除一些snapshots或者重启quorum

2017-07-17 18:19:19,338 [myid:0] - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:28421:NIOServerCnxnFactory@197] - Accepted socket connection from /10.204.96.205:333172017-07-17 18:19:19,338 [myid:0] - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:28421:ZooKeeperServer@841] - Refusing session request for client /10.204.96.205:33317 as it has seen zxid 0x2001597f6 our last zxid is 0x10017c19c client must try another server2017-07-17 18:19:19,338 [myid:0] - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:28421:NIOServerCnxn@1007] - Closed socket connection for client /10.204.96.205:33317 (no session established for client)


zookeeper相关源代码:

 if (connReq.getLastZxidSeen() > zk.getZKDatabase().getDataTreeLastProcessedZxid()) {            String msg = "Refusing session request for client "                + sock.socket().getRemoteSocketAddress()                + " as it has seen zxid 0x"                + Long.toHexString(connReq.getLastZxidSeen())                + " our last zxid is 0x"                + Long.toHexString(zk.getZKDatabase().getDataTreeLastProcessedZxid())                + " client must try another server";            LOG.info(msg);            throw new CloseRequestException(msg);        }