簡體   English   中英

Azure 功能 - 對來自 Azure 服務總線的消息進行分組

[英]Azure Functions - grouping messages from Azure Service Bus

當您必須處理大量消息時,最好將它們分組以優化性能(但保持在消息鎖定持續時間之內)。

例如,如果對於每條消息,您都必須調用外部服務(elasticsearch?)以獲得出色的性能,那么將對外部服務的 1000 個請求組合成一個。

但是這種分組應該由 Azure Function 處理,因為如果您自己對消息進行分組:消息已成功從服務總線讀取,並且您已超出消息鎖定持續時間。 換句話說,如果在處理我們丟失的整組消息的過程中出現問題,您不能自動將它們死信。

我們可以將Azure 函數綁定配置為一次接收一組消息而不是一條消息嗎?

您可以配置 Azure 服務總線觸發器來接收批次。

[FunctionName("TriggerBatch")]
public static void Run(
    [ServiceBusTrigger("<queue_name>", Connection = "<connection_name>")] ServiceBusReceivedMessage[] messages,
    ILogger logger)
{
    foreach (ServiceBusReceivedMessage message in messages)
    {
        logger.LogInformation($"Function triggered to process a message with body: {message.Body}");
        logger.LogInformation($"EnqueuedTime={message.EnqueuedTime}");
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM