客户端程序调用zookeeper报len4807928异常

一、故障分析与解决

1.dubbo-zookeeper注册中心数据量太大.导致客户端与其通信失败
异常现象图:

2.异常分析
znode节点上的数据太大,超过长度,程序处理失败
3.解决方法
在zookeeper客户端程序启动start.sh中加入"-Djute.maxbuffer=10240000"增加它的最大容量
参数位置:JAVA_MEM_OPTS="-Djute.maxbuffer=10240000"
加入之后启动java程序,观察日志.无之前异常

二、zookeeper优化说明-设置zookeeper启动内存大小

1.编辑zookeeper/bin/zkEnv.sh配置文件

该文件已经明确说明有独立JVM内存的设置文件,路径是zookeeper/conf/Java.env,安装的时候这个路径下没有有java.env配置文件.需新建
#命令:
cat >>conf/java.env<<EOF
#!/bin/sh
export JAVA_HOME=/usr/java/jdk
# heap size MUST be modified according to cluster environment
# 默认2g,根据机器自身内存大小设置,注意事项下面说明
export JVMFLAGS="-Xms4g -Xmx4g"
EOF
2.堆区参数配置说明
1.-Xms :表示java虚拟机堆区内存初始内存分配的大小,通常为操作系统可用内存的1/64大小即可,但仍需按照实际情况进行分配。有可能真的按照这样的一个规则分配时,设计出的软件还没有能够运行得起来就挂了。
2.-Xmx: 表示java虚拟机堆区内存可被分配的最大上限,通常为操作系统可用内存的1/4大小。但是开发过程中,通常会将 -Xms 与 -Xmx两个参数的配置相同的值,其目的是为了能够在java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小而浪费资源。 一般来讲对于堆区的内存分配只需要对上述两个参数进行合理配置即可。

注:
在配置之前一定要慎重的考虑一下自身软件所需要的非堆区内存大小,因为此处内存是不会被java垃圾回收机制进行处理的地方。并且更加要注意的是 最大堆内存与最大非堆内存的和绝对不能够超出操作系统的可用内存。

原文地址:http://blog.51cto.com/dropak/2306602

时间: 2024-11-10 02:26:10

客户端程序调用zookeeper报len4807928异常的相关文章

C# 客户端程序调用外部程序的三种实现

简介 我们用C#来开发客户端程序的时候,总会不可避免的需要调用外部程序或者访问网站,本篇博客介绍了三种调用外部应用的方法,供参考 实现 第一种是利用shell32.dll,实现ShellExecute方法,该方法可同时打开本地程序.文件夹或者访问网站,只要直接输入路径字符串即可, 如C:\Users\Desktop\xx.exe或者https://cn.bing.com/,可以根据返回值判断是否调用成功 (成功0x00000002a , 失败0x00000002) Window wnd = Wi

c#调用excel报错 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))问题的解决

程序一直都正常,今天突然发现异常,网上查了一下有说pdf的问题,也有说360的问题,正好前几天我装了一个pdf阅读软件,发现pdf软件会占用excel的com端口,然后我就在excel中的com加载项中把pdf软件的加载项给去掉了,一切就又恢复正常了. 我的是excel2007,找到"excel选项",点开后点击"加载项",最下面有个管理加载项的下拉菜单,选"COM加载项",点"转到",这时会弹出一个框,把里面pdf软件的加载

ActiveMQ-cpp客户端程序应用异常退出问题

笔者使用ActiveMQ作为系统中消息分发的服务器,由Java Web程序读取数据库实时记录作为Producer,接收端为C++Builder开发的客户端程序,常驻客户端右下角,弹窗显示实时消息. 测试时发现,当客户端断网(网线拔掉)或者服务器重启等连接中断时,客户端会直接退出,windows也没有报程序崩溃的问题,很是费解. Debug调试代码发现问题出在自定义的Concumer类的异常处理时,调用了exit(1): //SimpleAsyncConsumer.cpp [1] void Sim

asp.net网页调用客户端程序

================================第一步:网注册表中(HKEY_CLASSES_ROOT)添加项 ================================第二步:在网页上写上标签调用 <a href="xishui://hello">zhangdi://hello</a> ================================显示效果:会弹出hello asp.net网页调用客户端程序,布布扣,bubuko.com

WEB程序调用客户端程序

最近一个项目中要点击WEB页面上的链接启动自己编写的程序,而且还要接收参数,google了1.5小时,终于初步试验通过了. 尝试google了:web send message windows form, bs call cs program, custom protocol...多个关键字组合,发现这种技术叫 registered URL protocol,在这篇文章里介绍得比较详细: http://msdn.microsoft.com/en-us/library/aa767914(v=vs.

axis2通过wsdl生成客户端程序并本地调用

wsdl2java -uri http://10.0.5.12/brm/services/RuleEngine1374389539674484?wsdl -p east.mvc.webservice.client -o stub RuleEngine1374389539674484Stub stub = null; try { stub = new RuleEngine1374389539674484Stub(); RuleEngine1374389539674484Stub.GetCutCat

执行enable-migrations时,报“使用“2”个参数调用“SetData”时发生异常:“程序集“Microsoft.VisualStudio.TeamArchitect.ModelingProject,..”

今天打开MVC项目(Code-First),打算手动更新数据库,所以直接在"程序包管理控制台"中执行如下命: enable-migrations -contexttypename BJYLOnlineServ.Areas.Enterprise.DAL.EnterpriseContext  -MigrationsDirectory Migrations\Enterprise: 控制台直接给了我一个这样的错误,我奇怪了,之前还好好的啊,怎么回事了.错误: PM> enable-mig

SAP RFC 函数创建 Java程序调用 学习总结 一步一步图文并茂

前言 公司即将接到一个项目与SAP有接口.老大让我们搞SAP,首先SAP接触过,但是没玩过开发,本周就专心的在研究这一块. 各种碰壁,SAP的系统让我怎么说呢? 算了,说多了都是泪,下面附上本周学习成果,大家一起探讨一下,ABAP 还得多学学. Package (tcode:se80) 输入需要创建的 Package ,例:ZTP (之前用T打头测试,貌似不行,大家可以试试) 点  Yes 创建. 输入创建Package的信息. Table (tcode:se11) 点击Create. 点击保存

WindowsForm应用程序调用WebService

本文原创,如需转载,请标明源地址,谢谢合作!http://blog.csdn.net/sue_1989/article/details/6597078 本文的编写IDE为VSTS2008和.NET Framework3.5 ,其他版本的VS或.Net Framework类似 本示例程序说明:从WinForm程序调用本机的WebServices的方法,返回两个数的和 1. 新建>>项目>>ASP.NET Web 服务应用程序,命名为 WebServiceTest,OK 2.打开Ser