2013-12-12 8 views
0

Скажем, у меня есть 2 узла с IP-адресами 192.168.5.101 и 192.168.5.102. Я хотел бы запустить первый с некоторой задачей, инициализирующей распределенную карту, а через пару минут вторую (на этих двух хостах). Как мне настроить их, чтобы они могли видеть друг друга и делиться этой Картой?Как запустить два узла Hazelcast, которые используют единую структуру данных?

UPD. У меня был взгляд на документы 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"); 

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

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

ответ

0

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

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

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

+0

Да, у меня есть очевидные причины, но замедление действительно * значительно, поэтому я рассматриваю другие возможности. Какая другая информация могла бы дать вам больше намеков? Характер задач довольно прост - чтение из некоторых файлов в экземпляр «IMap». Каждый узел имеет набор файлов, и каждый файл читается в отдельном потоке одновременно. – tkroman

+0

Я не знаю других возможностей, не получая доступа к некоторому коду :) Как врач может вылечить своих пациентов, если пациент не хочет посещать. – pveentjer

+0

Я уже показывал * только * разницу между этими двумя версиями - это сетевая конфигурация и сам факт запуска двух экземпляров. Но, тем не менее, я верну вам некоторые фрагменты кода, как только вернусь к работе. Спасибо за внимание и внимание :) – tkroman

Смежные вопросы