我有一些使用 JGroup 镜像的服务器。最近有一些不同步的意外行为,根据日志,Jgroup 会不时断开连接。我想在 JGroup 代码中编写一个小程序,以便在 JGroup 断开连接后通过电子邮件发送出去,并报告断开连接的机器。
问题是,基于 JavaDoc,我似乎无法从成员或 View 中提取物理 IP 地址。任何人都知道我该怎么做?
最佳答案
这是一个 hack,但它有效。 JGroups 团队已声明这很危险,因为他们可能随时更改底层代码,因此请谨慎使用。
public void receive(Message msg) {
String srcIp;
Address addr = msg.getSrc();
PhysicalAddress physicalAddr = (PhysicalAddress)channel.down(new Event(Event.GET_PHYSICAL_ADDRESS, addr));
if(physicalAddr instanceof IpAddress) {
IpAddress ipAddr = (IpAddress)physicalAddr;
InetAddress inetAddr = ipAddr.getIpAddress();
srcIp = inetAddr.getHostAddress();
}
}
关于java - Jgroup 获取物理地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8382527/