Java 即使经过很长一段时间,我如何使jgroup重新连接?
因此,我们遇到了一个问题:渗透检查器运行12小时左右会导致Jgroups断开连接,从机无法重新加入群集,大脑分裂,以及其他一些表示缺少复制的问题,并且无法恢复Java 即使经过很长一段时间,我如何使jgroup重新连接?,java,jgroups,Java,Jgroups,因此,我们遇到了一个问题:渗透检查器运行12小时左右会导致Jgroups断开连接,从机无法重新加入群集,大脑分裂,以及其他一些表示缺少复制的问题,并且无法恢复 <config xmlns="urn:org:jgroups" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema
<config xmlns="urn:org:jgroups"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/JGroups-3.6.xsd">
<TCP bind_addr="NON_LOOPBACK"
bind_port="${infinispan.jgroups.bindPort}"
enable_diagnostics="false"
thread_naming_pattern="pl"
send_buf_size="640k"
sock_conn_timeout="300"
thread_pool.min_threads="${jgroups.thread_pool.min_threads:2}"
thread_pool.max_threads="${jgroups.thread_pool.max_threads:30}"
thread_pool.keep_alive_time="60000"
thread_pool.queue_enabled="false"
internal_thread_pool.min_threads="${jgroups.internal_thread_pool.min_threads:5}"
internal_thread_pool.max_threads="${jgroups.internal_thread_pool.max_threads:20}"
internal_thread_pool.keep_alive_time="60000"
internal_thread_pool.queue_enabled="true"
internal_thread_pool.queue_max_size="500"
oob_thread_pool.min_threads="${jgroups.oob_thread_pool.min_threads:20}"
oob_thread_pool.max_threads="${jgroups.oob_thread_pool.max_threads:200}"
oob_thread_pool.keep_alive_time="60000"
oob_thread_pool.queue_enabled="false"
/>
<TCPPING async_discovery="true"
initial_hosts="${infinispan.jgroups.tcpping.initialhosts}"
port_range="1"/>
/>
<MERGE3 min_interval="10000"
max_interval="30000"
/>
<FD_SOCK />
<FD />
<VERIFY_SUSPECT />
<pbcast.NAKACK2 use_mcast_xmit="false"
xmit_interval="1000"
xmit_table_num_rows="50"
xmit_table_msgs_per_row="1024"
xmit_table_max_compaction_time="30000"
max_msg_batch_size="100"
resend_last_seqno="true"
/>
<UNICAST3 xmit_interval="500"
xmit_table_num_rows="50"
xmit_table_msgs_per_row="1024"
xmit_table_max_compaction_time="30000"
max_msg_batch_size="100"
conn_expiry_timeout="0"
/>
<pbcast.STABLE stability_delay="500"
desired_avg_gossip="5000"
max_bytes="1M"
/>
<pbcast.GMS print_local_addr="true" join_timeout="15000"/>
<pbcast.FLUSH />
<FRAG2 />
</config>
我想知道我们是否可以更改jgroups配置,以便集群节点最终能够重新加入。即使在12小时的“攻击”之后,我们也不必重新启动服务器。请先为我定义断开连接
关于您的堆栈,我有一些建议/问题:
- 我通常建议使用您使用的版本中的
,然后根据您的需要进行修改tcp.xml
- TCping:初始_主机是否包含所有集群成员
- 用FD_ALL替换FD
- 稳定:5s的期望值有点小;这会产生超过需要的流量
- GMS.join_超时15s相当高;这是第一个成员的启动时间,它还影响发现时间
- 你要冲水干什么李>
tcp.xml
我知道这是从infinispan在8.1.0中的任何内容复制和修改的。是的;FD_ALL,实际上在发布这篇文章后,我把它改成了FD_ALL 2,但这还没有通过制作GMS.join_timeout
,我们的服务器需要很长时间才能启动(至少60秒),这可能就是原因。FLUSH,我们可能没有复制收到的警告…[WARN][2017.03.05 10:29:05]impl.DispatchMessageSender-HSEARCH200010:FLUSH不在您的JGroups堆栈中!需要刷新以确保在新节点加入集群时不会删除消息。将继续,但可能会出现不一致代码>向HSEARCH的人发出同花顺警告。我记得Infinispan的一个非常古老的版本需要它,但现在不应该是这样了。是的,也许,我认为我们在Infinispan 8.1.0,hibernate search 5.3上,这个警告发生在本周。。。我不认为那是古老的。。。奇怪的是,我只是添加了同花顺来处理它,也许我应该停止它。更新了关于我所说的断开连接的意思,希望它能让senseI注意到tcp.xml
使用FD
而不是FD\u ALL
。。。但是tcp nio.xml
使用FD_ALL
,我应该使用tcp nio
作为基础吗?
jgroups 3.6.13
infinispan 8.1.0,
hibernate search 5.3