通过批次

时间:2018-08-10 08:29:04

标签: c# .net batch-processing azureservicebus azure-servicebus-queues

我正在使用 ReceiveBatch API来处理来自Azure Service Bus的消息(批处理)。在此,我注意到了。

当消息大小增加时,批量接收的消息数将减少。

示例

  1. 当BatchSize = 50,MessageSize = 20Kb和Prefetch Count = 50 ===>调用serviceBusClient.ReceiveBatch = 12条消息

  2. 时收到的消息数
  3. 当BatchSize = 50,MessageSize = 10Kb和Prefetch Count = 50 ===>调用serviceBusClient.ReceiveBatch = 22条消息

  4. 时收到的消息数
  5. 当BatchSize = 50,MessageSize = 5Kb和Prefetch Count = 50 ===>调用serviceBusClient.ReceiveBatch = 44条消息

  6. 时收到的消息数

在以上三种情况下,我一次都能收到大约220到240 KB的消息。 那么,无论消息大小如何,接收更多消息的最佳实践是什么?在批处理中(serviceBusClient.ReceiveBatch)

1 个答案:

答案 0 :(得分:0)

可以批量处理的邮件的最大大小为256 KB。如果大小id大于256 KB,则批次将被拒绝。

无论是单处理还是批处理,您都只能在256 KB之内发送或接收消息。

要确定消息的大小,请将实际消息内容添加到Blob存储中,然后将Blob URL作为消息正文发送。在这里,所有消息的大小将相同且非常小。

因此,您可以确定每批可以处理的消息数。

这也可以使用Service Bus Plugins来实现。