1. 程式人生 > 實用技巧 >rocketmq-批量傳送訊息

rocketmq-批量傳送訊息

參考:

https://blog.csdn.net/u010277958/article/details/88647281

RocketMQ-批量傳送訊息

批量傳送訊息可提高傳遞小訊息的效能。同時也需要滿足以下特徵:

  • 批量訊息要求必要具有同一topic、相同訊息配置
  • 不支援延時訊息
  • 建議一個批量訊息最好不要超過1MB大小

示例:

String topic = "BatchTest";
List<Message> messages = new ArrayList<>();
messages.add(new Message(topic, "TagA", "Order1", "Hello world 0".getBytes()));
messages.add(
new Message(topic, "TagA", "Order2", "Hello world 1".getBytes())); messages.add(new Message(topic, "TagA", "Order3", "Hello world 2".getBytes())); try { producer.send(messages); } catch (Exception e) { e.printStackTrace(); }

在傳送批量訊息時先構建一個訊息物件集合,然後呼叫send(Collection msg)方法即可。由於批量訊息的1M限制,所以一般情況下在集合中新增訊息需要先計算當前集合中訊息物件的大小是否超過限制,如果超過限制也可以使用分割訊息的方式進行多次批量傳送。