全部產品
Search
文件中心

ApsaraMQ for RocketMQ:批量發送

更新時間:Apr 21, 2026

使用限制

  1. 只支援 Remoting SDK。更多說明查看SDK參考概述

  2. 僅支援普通訊息和順序訊息,不支援定時訊息和事務訊息。

  3. 順序訊息要求一批中所有訊息具有相同的 Shardingkey 屬性。

  4. 一批訊息的全部訊息大小(包含屬性)總和不大於4M,一批的訊息數量不大於 4096 條。

  5. 批量發送不支援用戶端訊息壓縮。

  6. 批量發送的每一條訊息都需要body大於0(同單條訊息)。

  7. 批量發送的每一條訊息都會經過屬性校正,不得有非法字元(同單條訊息)。

  8. 不支援批量的消費。

使用方式

String topic = "BatchTest";
List<Message> messages = new ArrayList<>();
messages.add(new Message(topic, "Tag", "OrderID001", "Hello world 0".getBytes()));
messages.add(new Message(topic, "Tag", "OrderID002", "Hello world 1".getBytes()));
messages.add(new Message(topic, "Tag", "OrderID003", "Hello world 2".getBytes()));

producer.send(messages);  

Canal 適配

# 支援 Batch Send 的執行個體將可以將flatMessage屬性設定為 true
canal.mq.flatMessage = true

訊息發送次數計算規則

  • 訊息收發次數 = Max{ ⌈訊息大小/ 4KB⌉, 實際訊息條數} 。例如,一次發送了10條訊息,總訊息大小為 50 KB,發送次數按照⌈50KB / 4KB⌉= 13次計算。

  • 該次數計算規則用於計費計量和限流TPS統計。