Jboss org.jgroups.protocols.pbcast.NAKACK问题

Jboss org.jgroups.protocols.pbcast.NAKACK问题,jboss,jgroups,mod-cluster,Jboss,Jgroups,Mod Cluster,[org.jgroups.protocols.pbcast.NAKACK](requester=,local_addr=)消息::在的重传表中找不到端口:端口: (size=xxxx,missing=x,highest stability=xxxxx)]NAKACK(或其较新的同类,NAKACK2)向集群提供可靠的消息传输。为此,每条消息都会获得一个序列号(seqno),接收者会按照seqno的顺序将消息传递给应用程序 每个集群成员都有一个包含所有其他成员及其消息的表(概念上是一个列表)。当成员

[org.jgroups.protocols.pbcast.NAKACK](requester=,local_addr=)消息::在的重传表中找不到端口:端口: (size=xxxx,missing=x,highest stability=xxxxx)]

NAKACK
(或其较新的同类,
NAKACK2
)向集群提供可靠的消息传输。为此,每条消息都会获得一个序列号(seqno),接收者会按照seqno的顺序将消息传递给应用程序

每个集群成员都有一个包含所有其他成员及其消息的表(概念上是一个列表)。当成员P发送消息P21、P22和P23时,接收器R首先查找消息列表中的R,然后将P21-P23添加到该列表中

但是,在您的情况下,找不到R的列表。这意味着R不再是集群成员

例如,如果我们有集群{p,Q,R,T},并且成员R离开或被排除,因为它被怀疑(例如,我们在一段时间内没有接收到心跳),那么消息P21-23将被任何接收器丢弃

这是因为JGroups只允许集群成员发送和接收消息

如何将成员排除在外

这可能是通过一种故障检测协议(例如
FD\u ALL
FD
)来实现的

另一种可能是线程池被阻塞,故障检测心跳消息被丢弃,从而导致错误的怀疑

此外,长时间的GC暂停也会导致这种情况

修正:

  • 增加
    FD\u ALL
    FD
    中的超时。超时时间应长于最长的GC周期。请注意,现在检测挂起的成员需要更长的时间
  • 调整线程池的大小,例如,确保最大线程数较大且队列已禁用

请注意,可能会发生错误怀疑,但是
MERGE3
以后应该会记住拆分群集。

大家好,任何人都可以提供解决方案,说明为什么我会出现上述错误,并且它正在填充日志文件。有人能提供解决方案吗?