У меня есть стандартный брокер ActiveMQ
private static String localVMurl = "vm://localhost";
broker = new BrokerService();
broker.addConnector(localVMurl);
broker.start();
и все хорошо. моя цель состоит в том, чтобы потребитель связался с брокером по определенной теме. Как только это соединение будет обнаружено, брокер либо передаст сообщения, если источник активно работает с темой, либо брокер запустит новый источник для этой конкретной темы. Однако для этого мне нужно, чтобы кто-то обнаружил, когда новый потребитель подключается и запрашивает определенную тему.
мой основной потребительский код:
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(remoterURL);
Connection connection = connectionFactory.createConnection();
connection.setClientID("clinet1");
connection.start();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic("some_topic");
MessageConsumer consumer = session.createConsumer(topic);
consumer.setMessageListener(new MyMessageListener());
и я вижу в журналах брокера:
<161005 11:03:41> [.0.1:64433@5001] DEBUG tRegion - localhost adding destination: topic://ActiveMQ.Advisory.Consumer.Topic.some_topic
Итак, я знаю, что потребитель подключается и подписывается на эту тему, мне просто нужно как-то поймать это событие.
Любые мысли о том, как это сделать?