Скажем, у меня есть 2 узла с IP-адресами 192.168.5.101
и 192.168.5.102
. Я хочу запустить первый с какой-то задачей инициализации распределенной карты и через пару минут второй (на этих двух хостах). Как мне настроить их, чтобы они могли видеть друг друга и делиться этой картой?
УПД. Я взглянул на документы Hazelcast и смог запустить два экземпляра со следующим кодом:
Config config = new Config();
config.getNetworkConfig().getJoin().getMulticastConfig().setEnabled(false);
config.getNetworkConfig().getJoin().getTcpIpConfig().addMember("192.168.4.101").addMember("192.168.4.102").setRequiredMember("192.168.4.101").setEnabled(true);
config.getNetworkConfig().getInterfaces().setEnabled(true).addInterface("192.168.4.*");
И где-то дальше:
HazelcastInstance hazelcast = Hazelcast.newHazelcastInstance(config);
MultiMap<Long, Long> idToPids = hazelcast.getMultiMap("mapName");
IMap<Long, EntityDesc> idToDesc = hazelcast.getMap("multiMapName");
За всем этим последовал код, выполняющий задания. Я запускаю этот класс на двух разных нодах, они успешно видят друг друга и общаются (даже делят ресурсы, насколько я могу судить).
Но проблема в том, что работа двух узлов кажется намного медленнее, чем в случае одного локального узла. Что я делаю не так?