当少数集群成员重新启动时,我们的jgroup集群彼此松散时,我遇到了问题。我们在集群中有13个节点,它们都在同一个子网中。当重新启动4个节点时,整个集群就会崩溃。所有的成员都停止了相互识别,没有重新启动的现有成员也没有找到对方。
我们开始收到可疑消息,但未能收集所有ACKs。
0;33mWARN传入-1,广播,节点-12节点-12:在2000 to后未能收集视图节点的所有ACKs (expected=11),从节点-12、节点-4、节点-6、节点-13、节点- 11、节点-2、节点-7、节点-8、节点-9、节点-0、节点-3中丢失11个ACKs。
0;33 33mWARN INT-2,广播,节点-12节点-12:我被节点-5怀疑;忽略可疑消息并返回一个HEARTBEAT_ACK。
PFB我们正在使用的配置,如果配置有任何问题请告诉我。我们使用的是3.4.1最终版本的JGroups
<TCP loopback="true"
recv_buf_size="${tcp.recv_buf_size:20M}"
send_buf_size="${tcp.send_buf_size:640K}"
discard_incompatible_packets="true"
max_bundle_size="64K"
max_bundle_timeout=“5"
enable_bundling="true"
use_send_queues="true"
sock_conn_timeout="300"
timer_type="new"
timer.min_threads="4"
timer.max_threads="10"
timer.keep_alive_time="3000"
timer.queue_max_size="500"
thread_pool.enabled="true"
thread_pool.min_threads="1"
thread_pool.max_threads="10"
thread_pool.keep_alive_time="5000"
thread_pool.queue_enabled=“true"
thread_pool.queue_max_size="100000"
thread_pool.rejection_policy="discard"
oob_thread_pool.enabled="true"
oob_thread_pool.min_threads="1"
oob_thread_pool.max_threads="8"
oob_thread_pool.keep_alive_time="5000"
oob_thread_pool.queue_enabled="false"
oob_thread_pool.queue_max_size="100"
oob_thread_pool.rejection_policy="discard"
bind_addr="${jgroups.bind_addr}"
bind_port="${jgroups.bind_port}" />
<JDBC_PING connection_driver="${database.driver}"
connection_password="${database.password}"
connection_username="${database.user}"
connection_url="${database.url}"
initialize_sql="${jgroups.schema}"
datasource_jndi_name="${datasource.jndi.name}"/>
<MERGE2 min_interval="10000" max_interval="30000" />
<FD_SOCK />
<FD timeout="3000" max_tries="3" />
<VERIFY_SUSPECT timeout="1500" />
<BARRIER />
<pbcast.NAKACK use_mcast_xmit="false" exponential_backoff="500" discard_delivered_msgs="true" />
<UNICAST2 />
<pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000" max_bytes="4M" />
<pbcast.GMS print_local_addr="true" join_timeout="3000" view_bundling="true" />
<UFC max_credits="20M" min_threshold="0.4" />
<MFC max_credits="20M" min_threshold="0.4" /`enter code here`>
<FRAG2 frag_size="60K" />
<pbcast.STATE_TRANSFER />
发布于 2016-03-03 13:18:22
如何重新启动节点?通过杀死他们,还是通过一次优雅的关闭?关于您的配置的几个注释:
thread_pool.queue_enabled=“false"
),或者增加最小线程数和/或减小队列大小(例如100)。TCPPING
而不是JDBC_PING
,看看这是否有帮助MERGE3
而不是MERGE2
NAKACK2
而不是NAKACK
。通常,我建议使用随您使用的udp.xml
版本的JGroups,并应用上面的建议。这将防止您使用旧协议。FD_ALL
而不是FD
MFC
/UFC
来说,200m的最大学分过高,有效地违背了流量控制的目的。还可以运行probe.sh
(查看JGroups手册获取详细信息)以获取有关各种协议的信息,例如传输中的线程池使用情况(TCP
)、FD_ALL
中的怀疑等。
希望你能帮上忙
https://stackoverflow.com/questions/35750002
复制相似问题