2014-01-23 2 views
2

Я пытаюсь настроить тему лесбиянки для pub/sub между двумя экземплярами tomcat. Для начала у меня есть только сервлет, который инициализирует Hazelcast и создает тему при запуске tomcat. Этот сервлет также будет публиковать сообщения в теме при вызове через HTTP GET. Вот мой метод инициализации() в сервлет:не удалось подключиться к обнаруженному мастеру - hazelcast

Config cfg = new Config(); 

System.out.println("hzapp: Creating hazelcast instance..."); 
hzInstance = Hazelcast.newHazelcastInstance(cfg); 
System.out.println("hzapp: Created hazelcast instance."); 

topic = hzInstance.getTopic("my-topic"); 

System.out.println("hzapp: Adding listener to the topic..."); 
topic.addMessageListener(new HzMessageListener()); 
System.out.println("hzapp: listener added to the topic."); 

Метод doGet (REQ, разрешение) сервлета просто публикует сообщение на тему, как это:

String message = request.getParameter("message"); 
System.out.println("hzapp: publishing message: " + message); 
topic.publish(message); 
System.out.println("hzapp: published message: " + message); 

HzMessageListener ничего не делает но печатает полученное сообщение:

public void onMessage(Message<String> message) { 
    System.out.println("hzapp: Message Received: " + message.getMessageObject()); 
} 

Теперь проблема я столкнулся в том, что, когда я начинаю кот, он дает мне ошибку ниже:

INFO: Starting Servlet Engine: Apache Tomcat/6.0.36 
hzapp: Creating hazelcast instance... 
Jan 23, 2014 10:43:26 AM com.hazelcast.instance.DefaultAddressPicker 
INFO: Prefer IPv4 stack is true. 
Jan 23, 2014 10:43:26 AM com.hazelcast.instance.DefaultAddressPicker 
INFO: Picked Address[192.168.1.10]:5702, using socket ServerSocket[addr=/0:0:0:0:0:0:0:0%0,localport=5702], bind any local is true 
Jan 23, 2014 10:43:26 AM com.hazelcast.system 
INFO: [192.168.1.10]:5702 [dev] Hazelcast Community Edition 3.1.4 (20140111) starting at Address[192.168.1.10]:5702 
Jan 23, 2014 10:43:26 AM com.hazelcast.system 
INFO: [192.168.1.10]:5702 [dev] Copyright (C) 2008-2013 Hazelcast.com 
Jan 23, 2014 10:43:26 AM com.hazelcast.instance.Node 
INFO: [192.168.1.10]:5702 [dev] Creating MulticastJoiner 
Jan 23, 2014 10:43:26 AM com.hazelcast.core.LifecycleService 
INFO: [192.168.1.10]:5702 [dev] Address[192.168.1.10]:5702 is STARTING 
Jan 23, 2014 10:43:26 AM com.hazelcast.nio.SocketConnector 
INFO: [192.168.1.10]:5702 [dev] Connecting to /192.168.1.10:5701, timeout: 0, bind-any: true 
Jan 23, 2014 10:43:26 AM com.hazelcast.nio.TcpIpConnectionManager 
INFO: [192.168.1.10]:5702 [dev] 55635 accepted socket connection from /192.168.1.10:5701 
Jan 23, 2014 10:43:50 AM com.hazelcast.instance.Node 
WARNING: [192.168.1.10]:5702 [dev] Trying to rejoin: 
====================================================== 
Couldn't connect to discovered master! tryCount: 50 
address: Address[192.168.1.10]:5702 
masterAddress: Address[192.168.1.10]:5701 
multicast: true 
connection: null 
====================================================== 

Не поймите, что здесь не так? Я использую версию Hazelcast 3.1.4, и у меня есть файл hazelcast-all-3.1.4.jar в WEB-INF/lib.

Независимо от того, что я пытался, он никогда не выходит за рамки Hazelcast.newHazelcastInstance(cfg);

ответ

4

Не могли бы вы попробовать его с TCP обнаружения IP вместо многоадресной рассылки, чтобы убедиться, что ничего другого, чем многоадресной рассылки не является проблемой:

Config config = new Config(); 
JoinConfig join = config.getNetworkConfig().getJoin(); 
join.getMulticastConfig().setEnabled(false); 
join.getTcpIpConfig().setEnabled(true); 

Затем мы сузили масштаб проблемы. Возможно, ваша сеть не поддерживает многоадресную передачу. Это может быть причиной.

+0

То, что вы указали, было именно причиной. Моя сеть не разрешает многоадресную рассылку. Спасибо, что поймал меня. – rkrishnan

+0

Нет проблем. Добро пожаловать. – pveentjer

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