使用限制
只支援 Remoting SDK。更多說明查看SDK參考概述。
僅支援普通訊息和順序訊息,不支援定時訊息和事務訊息。
順序訊息要求一批中所有訊息具有相同的 Shardingkey 屬性。
一批訊息的全部訊息大小(包含屬性)總和不大於4M,一批的訊息數量不大於 4096 條。
批量發送不支援用戶端訊息壓縮。
批量發送的每一條訊息都需要body大於0(同單條訊息)。
批量發送的每一條訊息都會經過屬性校正,不得有非法字元(同單條訊息)。
不支援批量的消費。
使用方式
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統計。