У меня есть издатель, который отправляет сообщения в тему. У меня есть несколько подписчиков, каждый из которых выполняет свою задачу, как только они получают сообщение из темы.
Теперь я хочу, чтобы моя система масштабировалась на несколько экземпляров одного и того же процесса, запущенного на разных хостах / одном хосте. например Я хочу запустить несколько копий своего приложения A на разных хостах, чтобы, если один экземпляр A работал медленно, другие экземпляры могли получать последующие сообщения и продвигаться вперед.
Я узнал, что это возможно с использованием виртуальных направлений. Я следовал за шагами здесь -
http://activemq.apache.org/virtual-destinations.html
Но как мне настроить нескольких подписчиков на одну и ту же тему с одинаковым идентификатором клиента? когда я пытаюсь сделать это, я получаю ошибки. когда я пытаюсь по-другому, это не работает. может кто-нибудь помочь?
Обычно я запускаю подписчика, выполняя следующие шаги -
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, ActiveMQConnection.DEFAULT_BROKER_URL;);
activeMQConnection = connectionFactory.createConnection();
activeMQConnection.setClientID("subscriber1");
activeMQConnection.setExceptionListener(exceptionListener);
activeMQSession = activeMQConnection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
activeMQTopic = activeMQSession.createTopic("myTopic");
activeConsumer = activeMQSession.createDurableSubscriber(activeMQTopic, "myTopic");
activeConsumer.setMessageListener(messageListener);
activeMQConnection.start();
когда я пытаюсь создать второго подписчика и передать имя темы как "VirtualTopic.myTopic", ничего не происходит.
спасибо