我正在使用ReceiveBatchAPI处理来自Azure Service Bus的消息(批处理(。在这方面,我注意到了以下内容。
当消息大小增加时,批处理中接收的消息数会减少。
例如
当 BatchSize = 50 时,消息大小 = 20Kb 且预取计数 = 50 ===> 调用服务时接收的消息数总线客户端.接收批处理 =12 条消息
当 BatchSize = 50 时,消息大小 = 10Kb 和预取计数 = 50 ===> 调用服务时接收的消息数总线客户端.接收批处理 =22 条消息
当 BatchSize = 50 时,消息大小 = 5Kb 且预取计数 = 50 ===> 调用服务时接收的消息数总线客户端.接收批处理 =44messages
在上述所有 3 种情况下,我一次可以接收大约 220 到 240 KB 的消息。那么,无论消息大小如何,接收更多消息的最佳实践是什么? 在批处理中(serviceBusClient.ReceiveBatch(
可以批量处理的消息的最大大小为 256 KB。如果大小 ID 大于 256 KB,则批处理将被拒绝。
无论是单个处理还是批处理,您都只能发送或接收 256 KB 以内的消息。
若要确定消息的大小,请将实际消息内容添加到 Blob 存储,并将 Blob URL 作为消息正文发送。在这里,所有消息的大小将相同且非常小。
因此,您可以确定每批可以处理的消息数。
这也可以使用服务总线插件来实现。