私は、推奨に従ってAzureワーカーロールでMessage Pumpパターンを実装しました。現在、AutoComplete = TrueとMaxConcurrentCalls = 1で構成されています。メッセージポンプ(OnMessage)がMaxDeliveryCountExceededを発生させますか?
負荷テストを実行する際に、十分なVMインスタンスを準備して待機している限り、メッセージは正常に処理されます。あまりにも多くのメッセージをあまりにも少ないVMインスタンスに送ると、すぐにMaxDeliveryCountExceededの理由でメッセージの大部分(40%以上)がDLQに送信されます。
これは私の期待に反しています。メッセージが待ち行列に戻ってきて、VMインスタンスがゆっくりと噛んでも、最終的にはそれを処理すると思います。実際、メッセージキューのパターンを選んだ理由です。
私は、メッセージポンプが原因だと思っています。これらのメッセージを非常に迅速かつ激怒させようとしている舞台裏では、VMは追いつくことができませんが、その間に配信カウンタが増分されているため、数秒で10回の試行が行われ、 DLQ。
誰もがこの仕事をするための同様の経験または指針を持っていますか?
ありがとうございます。
これは正しいとは思わないと同意します。配信回数を超えると、失敗した試行の後にエラー/例外が存在するはずです。メッセージポンプのエラー処理で何かが見えていますか? –