ZooKeeper客户端无法使用

ZooKeeper客户端无法使用

现象描述

当往ZooKeeper节点写入超过4MB数据的文件时,ZooKeeper客户端无法使用,出现如下信息。

2014-11-07 15:23:34,237 | WARN | NIOServerCxn.Factory:/10.18.51.157:24002 | 
Exception causing close of session 0xe4985ef3128000d due to java.io.IOException: Len error 1080037 | 
org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:362)
2014-11-07 15:23:34,238 | INFO | NIOServerCxn.Factory:/10.18.51.157:24002 | 
Closed socket connection for client /10.18.51.156:44987 which had sessionid 0xe4985ef3128000d | 
org.apache.zookeeper.server.NIOServerCnxn.closeSock(NIOServerCnxn.java:1007)

可能原因

ZooKeeper的数据大小是由“jute.maxbuffer”参数的值决定的。如果数据超过配置的值,服务端会拒绝访问并出现以上异常。该参数的默认值为4MB,且该参数不能修改。在集群的服务端和客户端必须保持这两个参数的一致性。

定位思路

无。

处理步骤

建议用户不要去修改“jute.maxbuffer”参数的值,在ZooKeeper节点写入数据时,确保单个文件的大小不超过4MB。为确保ZooKeeper的性能,建议不要将大量的数据写入到ZooKeeper节点中。

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。更多免费资源在http://www.gitweixin.com/?p=2627

发表评论

邮箱地址不会被公开。 必填项已用*标注