一个主题的多个监听器如何在Activemq中工作?
问题描述:
我正在使用ActiveMq嵌入式代理。我正在使用pub/sub模型。我有多个订阅该主题的听众。我正在使用默认消息侦听器容器。一个主题的多个监听器如何在Activemq中工作?
所以我开始的话题和用户的统计数据。
用于主题的消息的数目的统计始终为零。
DestinationStatistics statistics = destination
.getDestinationStatistics();
LOG.info("The message count in topic is" + destination.getMessages().count())
就我看到的,'主题中的消息数总是零'。 所以现在我得到了消费者到目的地的统计数据。目的地是我正在使用的主题。
Iterator<Subscription> it = destination.getConsumers().iterator();
while(it.hasNext()){
Subscription s= it.next();
LOG.info(s.getPendingQueueSize()+ ""+ s.getEnqueueCounter()+""+s.getDequeueCounter())
}
我看到每个消费者的这些统计信息反映了我作为pub/sub的一部分发送的消息。
那么整个过程如何工作呢?
我发布一条消息,经纪人立即推动信息给用户,订户保持各自的消费者的信息。 因此,主题中的消息数总是零,并且每个消费者的统计信息都会提供代理收到的消息的概念。
有人可以解释的过程中,应如何统计工作的?
答
一个话题只是一个地址。它不能保存消息,只需向订阅者发送消息。因此,它没有消息计数。
订阅者可以通过之前的消费者所消耗一段时间举行的消息。
你可以看到有关的话题入队的消息的数量统计,以及等待使用任一ActiveMQ的Web控制台或通过JMX /椒API被分派邮件的数量。
你是主题自动确认?如果是这样,那么它会立即将所有消息发送给消费者。如果您的主题持久且消费者未运行,那么您应该看到有关该主题的消息。 – dmossakowski