簡體   English   中英

Azure ServiceBus - 多次讀取同一消息

[英]Azure ServiceBus - same message read multiple times

我們在多次讀取來自 Azure ServiceBus 的消息時遇到了一些問題。 以前我們遇到過同樣的問題,結果是由於鎖定超時。 然后,隨着鎖定超時,消息被再次讀取,每次讀取消息時,它們的 deliveryCount 增加 1。 在此之后,我們將最大傳遞計數設置為 1 以避免重新發送消息,並將鎖定超時時間增加到 5 分鍾。

當前的問題要奇怪得多。

首先,在 10:45:34 讀取消息。 消息鎖設置為 10:50:34,deliveryCount 為 1。讀取成功,在 10:45:35.0。 到目前為止一切都很好。

但是,在 10:45:35.8,再次讀取相同的消息! 並且發送計數仍然是1。兩個接收日志中的序列號和消息id都相同。 這種情況發生在很小比例的消息中,例如 0.02% 的消息。

據我所知,讀取消息應該導致成功刪除消息,或者增加 deliveryCount,在我的情況下應該將消息發送到 DLQ。 在這些情況下,兩者都不會發生。

我正在使用 ServiceBusTrigger,如下所示:

    [FunctionName(nameof(ReceiveMessages))]
    public async Task Run([ServiceBusTrigger(queueName: "%QueueName%", Connection = "ServiceBusConnectionString")]
        string[] messages,

這似乎是服務總線或圖書館中的錯誤,對它可能是什么有任何想法嗎?

那不是 SDK,而是特定實體。 聽起來該實體已損壞。 刪除並重新創建它。 如果這沒有幫助,請打開支持案例。

另一方面,大多數情況下,當交付計數設置為 1 時,表明某些情況不正常。 如果您確實需要最多一次交付保證,請使用ReceiveAndDelete模式而不是PeekLock

暫無
暫無

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

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