我想知道 apache ignite 中是否有 AddressResolver 接口的示例用法。
我试图使用 AddressResolver 接口将我的本地 IP 地址(例如 192.168.10.101)“绑定”到我的外部 IP 地址,但没有运气。
当我这样做时,Ignite 服务器只是挂起(调试也没有输出)
我启动服务器的代码是:
TcpDiscoverySpi spi = new TcpDiscoverySpi();
TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
ipFinder.setAddresses(ipaddresses);
spi.setIpFinder(ipFinder);
spi.setAddressResolver(new IotAddressResolver());
IgniteConfiguration cfg = new IgniteConfiguration();
// Override default discovery SPI.
cfg.setDiscoverySpi(spi);
System.setProperty("IGNITE_QUIET", "false");
// Start Ignite node.
ignite = Ignition.start(cfg);
我对 AddressResolver 的实现是:
public class IotAddressResolver implements AddressResolver {
@Override
public Collection<InetSocketAddress> getExternalAddresses(
InetSocketAddress internalAddresses) throws IgniteCheckedException {
String host = "XX.XX.XX.XX";
Collection<InetSocketAddress> result = new ArrayList<InetSocketAddress>();
result.add(new InetSocketAddress(host, internalAddresses.getPort()));
return result;
}
}
ignite 调试日志的最后一行是:
WARNING: Timed out waiting for message to be read (most probably, the reason is in long GC pauses on remote node) [curTimeout=9989]
我将不胜感激。谢谢