写点什么

Amazon SQS 支持从死信队列重新生成消息

作者:Renato Losio

  • 2023-08-11
    北京
  • 本文字数:1125 字

    阅读完需:约 4 分钟

Amazon SQS支持从死信队列重新生成消息

亚马逊云科技最近宣布在SQS中支持使用AWS SDK或命令行接口进行死信队列的重驱动。新功能允许开发人员将未消费的消息从死信队列中移出并转移回其源队列。


当出现错误时,SQS 会将未消费的消息转移至死信队列(dead-letter queue,DLQ),从而能够让开发人员探查未成功消费的消息并调试应用程序的故障。亚马逊云科技的开发人员倡导者Sébastien Stormacq解释到:


每当消费者应用捡取一个要处理的消息时,消息的接收计数就会加 1。当 ReceiveCount > maxReceiveCount 时,Amazon SQS 会将消息移动到指定的 DLQ 中,供人工分析和调试。我们通常会将警报与 DLQ 关联起来,以便于在这种情况发生时发送通知。


在失败的消息调试完成或消费者应用能够消费它时,新的重驱动功能就会将消息移回源队列,从而能够在分布式系统中以编程的方式管理大规模未消费消息的生命周期。


过去,这只能通过在控制台手动处理才能实现。Ampt 公司的 CEO 兼创始人 Jeremy Daly 当时这样写到


这不是一个特性,这不是一个 API,而是一种只能在 AWS Console 中才能获取的“体验”。我想要它吗?想要!但是,我想登录 AWS Console 来使用它吗?绝对不想要!


要重新处理 DLQ 消息,开发人员可以使用如下的任务:StartMessageMoveTask 用于从死信队列启动新的消息移动任务;CancelMessageMoveTask 用于取消消息移动任务;ListMessageMoveTasks 用于获取特定源队列最近的消息移动任务(最多 10 个)。


社区对这项特性给出了积极的反馈,MUSIC Tribe 的云计算和平台主管 Tiago Barbosa评论说:


这是一个很好的改进。我一直不喜欢使用 DLQ,其中一个原因就是需要建立一种机制来重新处理最终出现在 DLQ 中的条目。


Curantis Solutions 的 CTO Benjamen Pyle撰写了一篇文章,介绍了如何使用 Golang 和 Step Functions 来重新驱动消息


在 DLQ 的配置中,可以使用自定义目的地选项的 ARN 来指定将消息发送回源队列还是其他队列。PostNL 首席工程师、AWS Serverless Hero Luc van Donkersgoed 在推特上写到:


如果能重新驱动到原始队列就好了。这一点非常棒,因为它允许我们指定任意的目标队列。这使得以前完成此项任务的 Lambda Functions 瞬间化为乌有。


文档强调了一些限制:SQS 仅支持标准队列的死信队列的重新驱动,不支持在重新生成它们时过滤和修改消息。除此之外,一个 DLQ 重新驱动任务最多可运行 36 小时,每个账户最多可以有 100 个活跃的重新驱动任务。有些开发人员质疑其缺少对Step Functions的支持


SQS 不会自动创建 DLQ,队列必须在接收到未消费的消息之前进行创建和配置。


原文链接:

Amazon SQS Supports Reprocessing Messages from Dead-Letter Queue


相关阅读:

大模型竞争突然升级!亚马逊CEO亲自监督、组建新的核心技术团队,集中优势资源打造“最具野心”的大语言模型

亚马逊云科技开源PBAC领域特定语言Cedar

2023-08-11 10:066937

评论

发布
暂无评论

JAVA 中 -> 是什么意思?

Sakura

4月日更

开发也可以如此简单!华为云发布两款开发工具

华为云开发者联盟

云原生 HDC2021 编码工具 SmartAssist

linux高性能服务器编程--高性能服务器程序框架

赖猫

Linux 服务器开发 高性能服务器 C/C++后端

推荐一个还不错的YouTube视频下载软件

科技猫

软件 视频处理 资源分享 视频下载 youtube

IT 专业的高校大学生编程技能及就业问卷调研

Yano

问卷调查

xch挖矿APP开发|xch挖矿系统软件开发

系统开发

聪明人的训练(二十六)

Changing Lin

4月日更

技术干货 | 如何在 Library 中使用/依赖 mPaaS?

蚂蚁集团移动开发平台 mPaaS

Android Studio 移动开发 mPaaS

百度集团资深副总裁李震宇:Apollo开放平台打造全球最强自动驾驶量产引擎 助力车企造好车

百度大脑

自动驾驶 Apollo

洞悉MySQL底层架构:一举拿下腾讯美团滴滴offer,持续更新中

欢喜学安卓

android 程序员 面试 移动开发

Android 关于CPU类型的so文件兼容问题(ABI)

寻找生命中的美好

android native so库 abi so文件

分布式消息中间件(1):Rabbitmq入门到高可用实战!学会了这个还怕被B站面试官看不起?

北游学Java

Java 分布式 RabbitMQ 中间件

分布式消息中间件(2):Kafka系统学习—集群搭建与使用、副本机制和实时日志统计流程

北游学Java

Java kafka 分布式 中间件

为工地装上大脑,落实企业安全管理责任

百度大脑

百度大脑 工地

数据驱动的元数据组件

鲸品堂

方法论 架构设计原则 架构设计实战 数据分析方法论

Substrate 合约书之合约语言框架

Patract

rust Substrate polkadot Patract Wasm

为什么每个程序员都应该了解“康威定律”

soolaugust

编程 架构 设计

成功入职腾讯大厂 分享我的成功秘籍:10W字复习大纲手册

比伯

Java 架构 程序人生 编程语言 计算机

剖析MySQL黑盒——MySQL架构设计

学Java关注我

Java 编程 架构 程序人生 计算机

chia奇亚挖矿软件开发|chia奇亚挖矿APP系统开发

系统开发

聚力边缘计算 共建数字中国丨浪潮边缘云ICP Edge 2.0 全新发布

云原生开发者须具备的1+N技能,开启第二曲线

华为云开发者联盟

DevOps 云原生 HDC2021 华为云DevCloud 企业数字化

腾讯云发布“创新成长快线”,首期向创业者赠送10亿分钟实时音视频时长

腾讯云音视频

音视频

刹车失灵,数据的刹车是否也会失灵?

BinTools图尔兹

数据库 运维 dba 数据库管理工具

系统高可用之健康检查和健康度量那些事

vivo互联网技术

高可用 服务器

SpringCloud整合统一异常处理

悟空聊架构

spring SpringCloud Cloud 异常处理 passjava

【死磕JVM】什么是JVM调优?

牧小农

JVM jvm调优 JVM基础

《本人娶刘亦菲的可行性报告》原文

不脱发的程序猿

程序人生

java单元测试代码自动生成

范晓刚

自动化 单元测试

合作伙伴眼中的鸿蒙,专访海雀科技研发总监李尹

Geek_283163

chia奇亚分币软件开发|chia奇亚分币APP系统开发

系统开发

Amazon SQS支持从死信队列重新生成消息_Serverless_InfoQ精选文章