可参考的资料1:
http://community.jboss.org/wiki/FDVersusFDSOCK
看完资料之后,自己作了实验。
GMS的失效检测推荐使用FD + FD_SOCK,如果有多个节点同时失效,最好使用FD_ALL+FD_SOCK。
其实比较有用的是使用FD_SOCK + KEEP_ALIVE + ALIVE_INTERNAL_TIME,遗憾的是,FD_SOCK有个参数KEEP_ALIVE,却没有设置ALIVE_INTERNAL_TIME的地方,导致FD_SOCK检测方式形同虚设,好多时候都是kill -9方式杀掉java进程,根本不可能gracefully.由于操作系统缺省的tcp ALIVE_INTERNAL_TIME=7200s,所以很要命的问题啊。
bela ban推荐:
<FD timeout="60000" max_tries="5" down_thread="false" up_thread="false" />
<FD_SOCK down_thread="false" up_thread="false"/>
关于FD_ALL:
Per Bela, UDP based stacks should use FD_ALL instead of FD. TCP based stacks should not.
FD_ALL works better in cases where X > 1 nodes fail; with FD it will take X * the failure timeout to suspect the Xth node. E.g. 3 nodes C, D, E fail, 30 sec failure timeout, it will be 90 secs before the failure of E is discovered.
参考https://issues.jboss.org/si/jira.issueviews:issue-html/JGRP-195/JGRP-195.html
https://issues.jboss.org/si/jira.issueviews:issue-html/JBAS-3004/JBAS-3004.html
https://issues.jboss.org/si/jira.issueviews:issue-html/JBAS-3003/JBAS-3003.html
https://issues.jboss.org/si/jira.issueviews:issue-html/JBAS-6604/JBAS-6604.html
https://issues.jboss.org/si/jira.issueviews:issue-html/JGRP-937/JGRP-937.html
最后总结:
项目中使用的oscache + jgroups在启动时偶尔会卡住,主要是因为FD_SOCK没有有效检测到leader失效导致新启动的服务获取一个失效的port,GMS join... retrying的死循环导致。现在配置调整如下:
PING(timeout=2000;num_initial_members=3):\
MERGE2(min_interval=5000;max_interval=10000):\
FD_SOCK(down_thread=false;up_thread=false):\
FD(timeout=20000;max_tries=3;shun=false;down_thread=false;up_thread=false):\
VERIFY_SUSPECT(timeout=1500):\
pbcast.NAKACK(gc_lag=50;retransmit_timeout=300,600,1200,2400,4800;max_xmit_size=8192):\
UNICAST(timeout=300,600,1200,2400):\
pbcast.STABLE(desired_avg_gossip=20000):\
FRAG(frag_size=8096;down_thread=false;up_thread=false):\
pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;print_local_addr=true)
即是这样修改之后,如果在FD检测有效期内,20*4=80秒,重新加入的节点,仍然会去联结失效的leader,但是过段时间之后就会正常,如果在leader之后很多节点同时失效,这个时间会比较长。可根据实际情况调整时间,如果每次都是大量实效,还是使用FD_ALL比较好。
分享到:
相关推荐
1. `log4j-1.2.13.jar` 是Apache的日志框架,用于记录应用程序运行过程中的各种信息,有助于调试和问题追踪。 2. `backport-util-concurrent-3.1.jar` 提供了Java 5的并发工具类的回退实现,使得在早期JDK版本中也能...
8. **log4j-1.2.11.jar**:日志工具Log4j,用于记录应用程序运行过程中的事件,便于调试和问题追踪。 综上所述,Hibernate 3.1.3版本的Jar包集成了众多核心组件,为Java开发者提供了完整的ORM解决方案,涵盖了...
这部分内容介绍了在Tomcat环境中使用Ehcache时需要注意的一些问题以及最佳实践。 #### 四十五、JSR 107 (JCACHE) 支持(JSR107 (JCACHE) Support) JSR 107 (JCACHE) 是Java平台上的缓存标准。这部分内容介绍了...
在SSM(Spring+SpringMVC+MyBatis)框架整合过程中,Hibernate作为持久层技术之一,其核心及辅助JAR包的选择和配置至关重要。以下是针对文档中提到的各个JAR包的详细介绍: 1. **hibernate3.jar** - 这是Hibernate...
cmd-bat-批处理-脚本-rimraf.zip
该资源文件详细介绍了如何在ADS软件中进行混频器仿真,内容涵盖了仿真设置、参数调整、结果分析等多个方面。
cmd-bat-批处理-脚本-Messagebox_Cancel_TryAgain_Continue.zip
内容概要:本文详细介绍了如何使用C#客户端实现OpcUa通讯,具体包括远程连接KEPserverEX服务器的方法及其应用。文中不仅提供了详细的环境准备工作指导,还给出了具体的代码示例用于创建会话和连接服务器,最后通过UaExpert测试工具验证了整个流程的有效性。这是一套亲测稳定高效的解决方案,适用于工业自动化领域的数据传输和控制。 适合人群:从事工业自动化领域的研发人员和技术爱好者,尤其是那些有C#编程经验并对OpcUa通讯感兴趣的开发者。 使用场景及目标:①帮助开发者掌握C#客户端连接KEPserverEX服务器的具体方法;②提供实用的代码示例和测试工具使用指南,便于快速上手;③确保数据传输的安全性和稳定性,提高工作效率。 其他说明:文章强调了环境准备的重要性,包括安装必要的开发工具和库,同时也指出了可能遇到的问题及解决办法。此外,还提到了UaExpert作为一款优秀的测试工具,在验证连接和数据交互方面的优势。
人工智能中的自动逻辑推理.zip
cmd-bat-批处理-脚本-os2_cid_install.zip
在武汉大学大地测量学基础的编程作业中,我已完成相关任务。通过使用教材中的算例进行验证,程序运行结果的误差极小,这充分证明了程序的准确性和可靠性。在公式推导过程中,我严格遵循步骤,确保每一步都清晰严谨,从而保证了最终结果的高精度。作业中还提供了灵活的选择,用户可以根据自己的需求选择正算或反算操作,并且可以手动输入任意坐标,方便进行多样化的计算和验证。
警 院指挥教学数字训练系统设计——公 安院校电子沙盘教学系统设计.zip
cmd-bat-批处理-脚本-un-java.zip
cmd-bat-批处理-脚本-SetForegroundWindow.zip
内容概要:本文详细介绍了GSP软件在航空发动机和燃气轮机模型设计中的应用。首先,讨论了如何利用GSP软件构建不同类型的航空发动机(如涡扇、涡喷、涡轴)和燃气轮机模型,涵盖了从进气道到涡轮各组成部分的建模。接着,阐述了稳态特性的循环计算方法,包括空气、燃油、燃气等组分的变换及其能量转换和物质交换的计算。最后,探讨了瞬态性能计算和部件性能衰退降级仿真,通过时间序列分析和动态仿真模块,模拟发动机在不同工况下的瞬态响应和故障数据,从而全面评估发动机的性能。 适合人群:从事航空发动机和燃气轮机研究的设计工程师、研究人员和技术专家。 使用场景及目标:适用于需要深入了解航空发动机和燃气轮机构造、稳态和瞬态性能的研究和开发项目。目标是提高对发动机工作原理的理解,优化设计流程,提升性能预测精度。 其他说明:文中提到的技术手段不仅限于理论分析,还包括实际操作层面的代码实现,帮助读者掌握具体的建模和仿真技巧。
cmd-bat-批处理-脚本-installtrusted.zip
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
威布尔杂波下扩展目标检测.zip
remotesensing-13-04370-v2.pdf
二十四节气之霜降介绍.pptx