/** * Pulls messages from specified topics. * * @return a map containing a list of messages per topic * @throws MQClientException * @throws RemotingException * @throws InterruptedException * @throws MQBrokerException */ public Map<String, List<MessageExt>> pull() throws MQClientException, RemotingException, InterruptedException, MQBrokerException { final Map<String, List<MessageExt>> messagesPerTopic = new HashMap<>(); for (String topic : topics) { final Set<MessageQueue> msgQueues = consumer.fetchSubscribeMessageQueues(topic); for (MessageQueue msgQueue : msgQueues) { final long offset = getMessageQueueOffset(msgQueue); final PullResult pullResult = consumer.pull(msgQueue, null, offset, batchSize); if (pullResult.getPullStatus() == PullStatus.FOUND) { messagesPerTopic.put(topic, pullResult.getMsgFoundList()); logger.debug("Pulled {} messages", pullResult.getMsgFoundList().size()); } } } return messagesPerTopic.size() > 0 ? messagesPerTopic : null; }
Set<MessageQueue> mqs = consumer.fetchSubscribeMessageQueues(topic); for (MessageQueue mq : mqs) { long minOffset = consumer.minOffset(mq);
private void executeDefault(long timeValueBegin, long timeValueEnd) { try { Set<MessageQueue> mqs = defaultMQPullConsumer.fetchSubscribeMessageQueues(topic); long countLeft = messageCount; for (MessageQueue mq : mqs) { if (countLeft == 0) { return; } long minOffset = defaultMQPullConsumer.minOffset(mq); long maxOffset = defaultMQPullConsumer.maxOffset(mq); if (timeValueBegin > 0) { minOffset = defaultMQPullConsumer.searchOffset(mq, timeValueBegin); } if (timeValueEnd > 0) { maxOffset = defaultMQPullConsumer.searchOffset(mq, timeValueEnd); } if (maxOffset - minOffset > countLeft) { System.out.printf("The older %d message of the %d queue will be provided\n", countLeft, mq.getQueueId()); maxOffset = minOffset + countLeft - 1; countLeft = 0; } else { countLeft = countLeft - (maxOffset - minOffset) - 1; } pullMessageByQueue(mq, minOffset, maxOffset); } } catch (Exception e) { e.printStackTrace(); } }
Set<MessageQueue> queues = consumer.fetchSubscribeMessageQueues(topic); for (MessageQueue queue : queues) { long offset = getMessageQueueOffset(queue);
consumer.start(); Set<MessageQueue> mqs = consumer.fetchSubscribeMessageQueues("broker-a"); for (MessageQueue mq : mqs) { System.out.printf("Consume from the queue: %s%n", mq);
private void initPositionFromMqTail() throws Exception { DefaultMQPullConsumer consumer = new DefaultMQPullConsumer("BINLOG_CONSUMER_GROUP"); consumer.setNamesrvAddr(config.mqNamesrvAddr); consumer.setMessageModel(MessageModel.valueOf("BROADCASTING")); consumer.start(); Set<MessageQueue> queues = consumer.fetchSubscribeMessageQueues(config.mqTopic); MessageQueue queue = queues.iterator().next(); if (queue != null) { Long offset = consumer.maxOffset(queue); if (offset > 0) offset--; PullResult pullResult = consumer.pull(queue, "*", offset, 100); if (pullResult.getPullStatus() == PullStatus.FOUND) { MessageExt msg = pullResult.getMsgFoundList().get(0); String json = new String(msg.getBody(), "UTF-8"); JSONObject js = JSON.parseObject(json); binlogFilename = (String) js.get("binlogFilename"); nextPosition = js.getLong("nextPosition"); } } }
consumer.start(); Set<MessageQueue> mqs = consumer.fetchSubscribeMessageQueues("TopicTest"); for (MessageQueue mq : mqs) { System.out.printf("Consume from the queue: %s%n", mq);
mqs = consumer.fetchSubscribeMessageQueues(topic); if (mqs != null && !mqs.isEmpty()) { TreeSet<MessageQueue> mqsNew = new TreeSet<MessageQueue>(mqs);
Set<MessageQueue> mqs = consumer.fetchSubscribeMessageQueues(Constants.TEST_TOPIC_NAME); for (MessageQueue mq : mqs) { System.out.printf("Consuming messages from the queue: %s%n", mq);
Set<MessageQueue> mqs = consumer.fetchSubscribeMessageQueues(Constants.TEST_TOPIC_NAME); for (MessageQueue mq : mqs) { System.out.printf("Consuming messages from the queue: %s%n", mq);
Set<MessageQueue> mqs = consumer.fetchSubscribeMessageQueues(topic); for (MessageQueue mq : mqs) { SINGLE_MQ:
Set<MessageQueue> mqs = consumer.fetchSubscribeMessageQueues(topic); for (MessageQueue mq : mqs) { long minOffset = consumer.minOffset(mq);
Set<MessageQueue> mqs = consumer.fetchSubscribeMessageQueues("TopicTest1"); for (MessageQueue mq : mqs) { System.out.printf("Consume from the queue: %s%n", mq);
consumer.start(); Set<MessageQueue> mqs = consumer.fetchSubscribeMessageQueues("TopicTest"); for (MessageQueue mq : mqs) { System.out.printf("Consume from the queue: " + mq + "%n");
mqs = consumer.fetchSubscribeMessageQueues(topic); if (mqs != null && !mqs.isEmpty()) { TreeSet<MessageQueue> mqsNew = new TreeSet<MessageQueue>(mqs);
Set<MessageQueue> mqs = consumer.fetchSubscribeMessageQueues(topic); for (MessageQueue mq : mqs) { long minOffset = consumer.minOffset(mq);
private void executeDefault(long timeValueBegin, long timeValueEnd) { try { Set<MessageQueue> mqs = defaultMQPullConsumer.fetchSubscribeMessageQueues(topic); long countLeft = messageCount; for (MessageQueue mq : mqs) { if (countLeft == 0) { return; } long minOffset = defaultMQPullConsumer.minOffset(mq); long maxOffset = defaultMQPullConsumer.maxOffset(mq); if (timeValueBegin > 0) { minOffset = defaultMQPullConsumer.searchOffset(mq, timeValueBegin); } if (timeValueEnd > 0) { maxOffset = defaultMQPullConsumer.searchOffset(mq, timeValueEnd); } if (maxOffset - minOffset > countLeft) { System.out.printf("The older %d message of the %d queue will be provided\n", countLeft, mq.getQueueId()); maxOffset = minOffset + countLeft - 1; countLeft = 0; } else { countLeft = countLeft - (maxOffset - minOffset) - 1; } pullMessageByQueue(mq, minOffset, maxOffset); } } catch (Exception e) { e.printStackTrace(); } }
mqs = consumer.fetchSubscribeMessageQueues(topic); if (mqs != null && !mqs.isEmpty()) { TreeSet<MessageQueue> mqsNew = new TreeSet<MessageQueue>(mqs);