gpt4 book ai didi

处理jgroups集群中节点故障的Java代码

转载 作者:行者123 更新时间:2023-12-01 11:15:07 27 4
gpt4 key购买 nike

我的 Jgroups 配置文件包含协议(protocol)/配置

<FD timeout="3000" max_tries="3" />

但是我如何在 Java 代码中使用它。例如,如果有一个集群,当我检测到故障时,我想通过 REST 调用 like /nodeDown/nodeID 来调用外部通知程序服务。我找不到任何执行此操作的java代码,我看到的只是消息接收和发送,有没有办法可以实现这个?

谢谢

添加更多信息我已经完成了编写 RecieverAdpater 并重写启动、停止、发送、接收方法的步骤。请在这里找到一些代码,

public void receive(Message msg) {
JGroupsDataPacket pckt = (JGroupsDataPacket) msg.getObject();
if ( pckt.getCmd().equals("cacheUpdate") ){
int uid = pckt.getAffectedUid();
cacheUpdateRoutine(uid);
}
if ( pckt.getCmd().equals("ack") ){
System.out.println("got the mesaage!");
}
logger.log(LogLevel.ERROR, "received msg from " + msg.getSrc() + ": " + msg.getObject());
}

public void send(JGroupsDataPacket pckt){
Message msg = new Message(null, null, pckt);
msg.setFlag(Message.Flag.RSVP);

try {
channel.send(msg);
} catch (Exception e) {
e.printStackTrace();
}
}

我想知道应该去哪里I add code for example to handle the TimeOutException when I'm sending a message with the RSVP flag enabled.另一个要求是知道,which is the Java callback method which is called when SUSPECT(P) is triggered.我想捕获并处理机器的故障、超时等。

Is the viewAccepted() the only place where I can handle this? Is there a sample code around this? 

也是 http://www.jgroups.org/manual/html/user-channel.html第 3 节 API 提供了我们可以使用 JGroups 执行的所有 java/编程操作。

再次感谢

我在这里找到了一些文档,我认为这是我应该覆盖的类

public interface MembershipListener {
void viewAccepted(View new_view);
void suspect(Object suspected_mbr);
void block();
void unblock();
}

最佳答案

好的,首先,你有一个 JChannel。您需要使用它来注册 View 回调,如下所示:

   JChannel ch;
ch.setReceiver(this);

'this' 扩展 ReceiverAdapter覆盖 viewAccepted():

   public void viewAccepted(View view) {
// handle new view
}

确定在 View v1 和 v2 之间离开的成员:

   List<Address> left_mbrs=View.leftMembers(v1,v2);

关于处理jgroups集群中节点故障的Java代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31925234/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com