System.out.println(“-------------------分割线-----------------”);
System.out.printf(“%s Receive New Messages: %s %n”, Thread.currentThread().getName(), msgs);
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
});
consumer.start();
System.out.printf(“Consumer Started.%n”);
}
}
执行效果如图所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200308202103968.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shado Java开源项目【ali1024.coding.net/public/P7/Java/git】 w_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3ByZXN0aWdlZGluZw==,size_16,color_FFFFFF,t_70)
不知道大家是否有注意到,调用 msgs.get(0).getMsgId()返回的msgId 与直接输出msgs中的 msgId 不一样,那这又是为什么呢?答案在本文的第二部分有详细分析。
[](()2、消息ID释疑
从消息发送的结果可以得知,RocketMQ 发送的返回结果会返回msgId 与 offsetMsgId,那这两个 msgId 分别是代表什么呢?
-
msgId:该ID 是消息发送者在消息发送时会首先在客户端生成,全局