2013-10-07 2 views
2

Я пытался запустить два узла hazelcast одновременно, и они не могут обнаружить друг друга. Это верно для обнаружения многоадресной рассылки и tcp-ip. Если я перезапущу один узел позже - они видят друг друга. Есть ли способ заставить их обнаружить друг друга без перезапуска? Или как отложить обнаружение при запуске узла?Если два узла запускались одновременно, они не видят друг друга

Конфигурация:

<network> 
    <port auto-increment="true">5701</port> 
    <outbound-ports> 
     <!-- 
     Allowed port range when connecting to other nodes. 
     0 or * means use system provided port. 
     --> 
     <ports>0</ports> 
    </outbound-ports> 
    <join> 
     <multicast enabled="true"> 
      <multicast-group>224.3.3.6</multicast-group> 
      <multicast-port>5705</multicast-port> 
     </multicast> 
    </join> 
</network> 

или

 <multicast enabled="false"> 
      <multicast-group>224.3.3.6</multicast-group> 
      <multicast-port>5705</multicast-port> 
     </multicast> 
     <tcp-ip enabled="true"> 
      <member>host1:5701</member> 
      <member>host2:5701</member> 
      <member>host3:5701</member> 
      <member>host4:5701</member> 
     </tcp-ip> 

UPD: решаемые вручную добавить случайный сон на старте до того кластера инициализации.

+0

Я могу отложить создание участника (Hazelcast.newHazelcastInstance (cfg);). Но это не похоже на приятное решение. – theme

+0

Они должны действительно найти друг друга. Вы указали оба их адреса в конфиге? Можете ли вы показать свой конфиг? – vikingsteve

+0

Я думаю, что и есть что-то с этим делать, но точное влияние этих параметров мне непонятно – theme

ответ

1

Ваши узлы работают достаточно долго? По моему опыту, это может занять некоторое время (30 секунд), пока узлы не найдут друг друга - независимо от связи обнаружения (multicast vs TCPIP).

After several trials and erros, Hazelcast.com and me found quite a simple solution:

config.setProperty("hazelcast.initial.min.cluster.size","2"); 

В моих экспериментах, решение быстрее и стабильнее, чем ждать некоторое время.

+0

милый, попробуй. – theme

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