Мне было интересно, есть ли пример использования интерфейса AddressResolver в apache ignite.Правильное использование интерфейса AddressResolver
Я пытался привязать свои локальные IP-адреса (например, 192.168.10.101) к своему внешнему IP-адресу, используя интерфейс AddressResolver, но не повезло.
Когда я что сервер 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;
}
}
Последней линией журнала отладки зажигания является:
WARNING: Timed out waiting for message to be read (most probably, the reason is in long GC pauses on remote node) [curTimeout=9989]
Буду признателен за любую помощь. Спасибо
В деталях - У меня есть 2 серверов узлов, развернутых на VPS, которые работают правильно. –
Я хочу использовать Address Resolver, чтобы иметь возможность запускать Ignite в режиме клиента на моем локальном компьютере, поэтому я могу запускать тесты на узлах, которые работают на VPS. Моя локальная машина работает в локальной сети с одним открытым IP-адресом для всей сети. Я использую перенаправление портов в маршрутизаторе, чтобы иметь возможность правильно «маршрутизировать» пакеты на локальный компьютер. –
Также в моих свойствах приложения поле addesses: ipaddresses = XX.XX.XX.XX: 47501..47510, где XX.XX.XX.XX является общедоступным адресом моей локальной сети –