Как запустить два узла Hazelcast, которые используют одну структуру данных?

Скажем, у меня есть 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");

За всем этим последовал код, выполняющий задания. Я запускаю этот класс на двух разных нодах, они успешно видят друг друга и общаются (даже делят ресурсы, насколько я могу судить).

Но проблема в том, что работа двух узлов кажется намного медленнее, чем в случае одного локального узла. Что я делаю не так?


person tkroman    schedule 12.12.2013    source источник


Ответы (1)


Одна из причин замедления заключается в том, что данные, используемые в задачах (я о них ничего не знаю), могли храниться на другом члене, чем выполняется задача. С кластером из одного узла у вас нет этой проблемы. Но в кластере с несколькими узлами карта будет разделена, поэтому каждый член будет хранить только подмножество данных.

Также с одним узлом нет резервного копирования, и поэтому он намного быстрее, чем в настоящей кластерной настройке (то есть> 1 член).

Вот некоторые из очевидных причин, почему все может замедлиться. Но без дополнительной информации будет очень сложно догадаться, в чем причина.

person pveentjer    schedule 12.12.2013
comment
Да, у меня есть очевидные причины, но замедление действительно значительное, поэтому я рассматриваю другие возможности. Какая другая информация могла бы дать вам больше подсказок? Природа задач довольно проста - чтение из некоторых файлов в экземпляр IMap. Каждый узел имеет свой набор файлов, и каждый файл одновременно читается в отдельном потоке. - person tkroman; 13.12.2013
comment
Я не знаю других возможностей без доступа к какому-то коду :) Как врач может лечить своих пациентов, если пациент не хочет ходить. - person pveentjer; 13.12.2013
comment
Я уже показал единственную разницу между этими двумя версиями - это конфигурация сети и сам факт запуска двух экземпляров. Но, тем не менее, я дам вам несколько кусков кода, как только вернусь к работе. Спасибо за внимание и внимание :) - person tkroman; 13.12.2013
comment
Вот код запуска, надеюсь, он поможет выяснить причину проблемы. pastebin.com/wypiSLUL - person tkroman; 13.12.2013