/**
* 获取指定Topic在集群中的消息
*
* @author ZhangYongjia balabala.sean@gmail.com
*/
public class SingleTopicTotalMessageExample {
public static void main(String[] args) throws Exception {
DefaultMQPullConsumer consumer = new DefaultMQPullConsumer("Test-Group", null);
consumer.setNamesrvAddr("rocketmq-ns-1:9876;rocketmq-ns-2:9876");
consumer.start();
Set<MessageQueue> messageQueues = consumer.fetchSubscribeMessageQueues("topic-2");
long totalSize = 0;
for (MessageQueue messageQueue : messageQueues) {
PullResult pullResult = consumer.pull(messageQueue, "*", 0, 32);//32是rocketmq api中可指定的最大值, 内部是一个32长度的list
//如果要遍历message body, 遍历以下list即可
//List<MessageExt> msgFoundList = pullResult.getMsgFoundList();
long maxOffset = pullResult.getMaxOffset();
System.out.println(messageQueue.getBrokerName() + "==>" + messageQueue.getQueueId() + "==>" + maxOffset);
totalSize += maxOffset;
}
System.out.println(totalSize);
consumer.shutdown();
}
}