背景:在使用zookeeper的时候发现程序报错java.io.IOException: Packet len4272892 is out of range!
原因:ZNode的大小做了限制,最大不能超过1M。ZooKeeper为了提高读的速度,把数据都加载到内存中,读取数据都是通过内存。
解决办法:
server和client根据情况进行修改
1、zkServer修改配置文件,增加内存jute.maxbuffer
,重启zk使配置生效
vim zookeeper.properties
...
jute.maxbuffer=0x400000 #增加此配置 4G内存
2、client端启动的时候增加参数
JAVA_OPTS=" -Djute.maxbuffer=0x400000 "