Cluster computing 如何在jgroup中使用FD_PING和tcp
我试图将FD_PING用于jgroup,但失败了。 我已经在jg-protocol-id.xml的协议列表中添加了FD_PING,之后它开始识别FD_PING,但当它在FD_PING中调用命令时,它会发送节点的名称,而不是要验证的ip/主机名。以下是配置。也请让我知道,如果我可以稳定故障检测一些如何。目前,我们得到了很多假警报(因为我正试图使用FD_-PING)Cluster computing 如何在jgroup中使用FD_PING和tcp,cluster-computing,jgroups,Cluster Computing,Jgroups,我试图将FD_PING用于jgroup,但失败了。 我已经在jg-protocol-id.xml的协议列表中添加了FD_PING,之后它开始识别FD_PING,但当它在FD_PING中调用命令时,它会发送节点的名称,而不是要验证的ip/主机名。以下是配置。也请让我知道,如果我可以稳定故障检测一些如何。目前,我们得到了很多假警报(因为我正试图使用FD_-PING) 我已经用自己的协议封装了FD\u PING来解决这个问题 import org.jgroups.Address; import o
我已经用自己的协议封装了FD\u PING来解决这个问题
import org.jgroups.Address;
import org.jgroups.Event;
import org.jgroups.PhysicalAddress;
import org.jgroups.protocols.FD_PING;
public class FD_TEST extends FD_PING {
public FD_ILABS() {
super();
updatePingDestination();
}
@Override
public Object up(Event evt) {
// TODO Auto-generated method stub
Object up = super.up(evt);
updatePingDestination();
return up;
}
@Override
public Object down(Event evt) {
// TODO Auto-generated method stub
Object down = super.down(evt);
updatePingDestination();
return down;
}
private void updatePingDestination() {
if(ping_dest!=null && !(ping_dest instanceof PhysicalAddress)) {
Address p = ping_dest;
ping_dest = (PhysicalAddress)down_prot.down(new Event(87, p));
}
}
}
所有协议都是堆叠的,因此您最终可以访问TCP。顺便说一句,jgroups因拥有链式协议而备受赞誉。我从缓存中看到,只有逻辑地址可用于FD协议,而物理地址仅存储在TP类中。是否有办法在FD级别获取物理地址。
import org.jgroups.Address;
import org.jgroups.Event;
import org.jgroups.PhysicalAddress;
import org.jgroups.protocols.FD_PING;
public class FD_TEST extends FD_PING {
public FD_ILABS() {
super();
updatePingDestination();
}
@Override
public Object up(Event evt) {
// TODO Auto-generated method stub
Object up = super.up(evt);
updatePingDestination();
return up;
}
@Override
public Object down(Event evt) {
// TODO Auto-generated method stub
Object down = super.down(evt);
updatePingDestination();
return down;
}
private void updatePingDestination() {
if(ping_dest!=null && !(ping_dest instanceof PhysicalAddress)) {
Address p = ping_dest;
ping_dest = (PhysicalAddress)down_prot.down(new Event(87, p));
}
}
}