Amazon SQS 支持從死信隊列重新生成消息

2023-08-12     InfoQ

原標題:Amazon SQS 支持從死信隊列重新生成消息

作者 | Renato Losio

譯者 | 張衛濱

策劃 | 丁曉昀

亞馬遜雲科技最近宣布在 SQS 中支持使用 AWS SDK 或命令行接口進行死信隊列的重驅動。新功能允許開發人員將未消費的消息從死信隊列中移出並轉移回其源隊列。

當出現錯誤時,SQS 會將未消費的消息轉移至死信隊列(dead-letter queue,DLQ),從而能夠讓開發人員探查未成功消費的消息並調試應用程式的故障。亞馬遜雲科技的開發人員倡導者 Sébastien Stormacq 解釋到:

每當消費者應用撿取一個要處理的消息時,消息的接收計數就會加 1。當ReceiveCount>maxReceiveCount 時,Amazon SQS 會將消息移動到指定的 DLQ 中,供人工分析和調試。我們通常會將警報與 DLQ 關聯起來,以便於在這種情況發生時發送通知。

每當消費者應用撿取一個要處理的消息時,消息的接收計數就會加 1。當ReceiveCount>maxReceiveCount 時,Amazon SQS 會將消息移動到指定的 DLQ 中,供人工分析和調試。我們通常會將警報與 DLQ 關聯起來,以便於在這種情況發生時發送通知。

在失敗的消息調試完成或消費者應用能夠消費它時,新的重驅動功能 就會將消息移回源隊列,從而能夠在分布式系統中以編程的方式管理大規模未消費消息的生命周期。

過去,這只能通過在控制台手動處理 才能實現。Ampt 公司的 CEO 兼創始人 Jeremy Daly 當時這樣寫到:

這不是一個特性,這不是一個 API,而是一種只能在 AWS Console 中才能獲取的「體驗」。我想要它嗎?想要!但是,我想登錄 AWS Console 來使用它嗎?絕對不想要!

這不是一個特性,這不是一個 API,而是一種只能在 AWS Console 中才能獲取的「體驗」。我想要它嗎?想要!但是,我想登錄 AWS Console 來使用它嗎?絕對不想要!

要重新處理 DLQ 消息,開發人員可以使用如下的任務:StartMessageMoveTask 用於從死信隊列啟動新的消息移動任務;CancelMessageMoveTask 用於取消消息移動任務;ListMessageMoveTasks用於獲取特定源隊列最近的消息移動任務(最多 10 個)。

社區對這項特性給出了積極的反饋,MUSIC Tribe 的雲計算和平台主管 Tiago Barbosa評論 說:

這是一個很好的改進。我一直不喜歡使用 DLQ,其中一個原因就是需要建立一種機制來重新處理最終出現在 DLQ 中的條目。

這是一個很好的改進。我一直不喜歡使用 DLQ,其中一個原因就是需要建立一種機制來重新處理最終出現在 DLQ 中的條目。

Curantis Solutions 的 CTO Benjamen Pyle 撰寫了一篇文章,介紹了如何使用 Golang 和 Step Functions 來重新驅動消息。

在 DLQ 的配置中,可以使用自定義目的地選項的 ARN 來指定將消息發送回源隊列還是其他隊列。PostNL 首席工程師、AWS Serverless Hero Luc van Donkersgoed 在推特上寫到:

如果能重新驅動到原始隊列就好了。這一點非常棒,因為它允許我們指定任意的目標隊列。這使得以前完成此項任務的 Lambda Functions 瞬間化為烏有。

如果能重新驅動到原始隊列就好了。這一點非常棒,因為它允許我們指定任意的目標隊列。這使得以前完成此項任務的 Lambda Functions 瞬間化為烏有。

文檔強調了一些限制:SQS 僅支持標準隊列的死信隊列的重新驅動,不支持在重新生成它們時過濾和修改消息。除此之外,一個 DLQ 重新驅動任務最多可運行 36 小時,每個帳戶最多可以有 100 個活躍的重新驅動任務。有些開發人員質疑其缺少對 Step Functions 的支持。

SQS 不會自動創建 DLQ,隊列必須在接收到未消費的消息之前進行創建和配置。

原文連結:

Amazon SQS Supports Reprocessing Messages from Dead-Letter Queue(https://www.infoq.com/news/2023/06/aws-sqs-dlq-redrive/)

相關閱讀:

大模型競爭突然升級!亞馬遜 CEO 親自監督、組建新的核心技術團隊,集中優勢資源打造「最具野心」的大語言模型 (https://www.infoq.cn/article/3utpk9247A6CtoyztLTB)

亞馬遜雲科技開源 PBAC 領域特定語言 Cedar(https://www.infoq.cn/article/CC2RaXSKw5oRwzpymyxx)

聲明:本文為 InfoQ 翻譯,未經許可禁止轉載。

點擊底部閱讀原文訪問 InfoQ 官網,獲取更多精彩內容!

今日好文推薦

谷歌的反「背鍋」文化

生成的代碼會出錯、質量差?面對 AI 編程工具的老大難問題,華為這群人打算這樣做

谷歌重磅發布多平台應用開發神器:背靠 AI 編程神器 Codey,支持 React、Vue 等框架,還能補全、解釋代碼

IPv4 開始收費!新的 IT 災難?

文章來源: https://twgreatdaily.com/zh-mo/4a34f3e3781d5ddb6d4908203f4ddb46.html