问题标签 [dlq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
19 浏览

error-handling - 在 RabbitMQ 中使用死信

在我的 RabbitMQ 消费者中,我区分了两种错误:

  • “生产者错误”:生产者没有遵守执行合同。示例:缺失的强制性数据、违反业务规则的数据组合、意外的内容类型
  • “消费者错误”:消费者无法处理消息,尽管消息完全有效。示例:消费者代码中的错误、内存耗尽、与数据库的连接失败。

我需要将生产者错误路由回生产者。我需要将消费者错误路由到一个队列,消费者端代理(消费者本身、人类等)将重新处理失败的消息或手动检查它,而生产者不会意识到问题。

Q1:生产者错误和消费者错误之间的区别是否相关?

Q2:在队列的DLX配置中,DLX应该接收哪些消息:生产者错误还是消费者错误?我知道 DLQ 也会收到过期消息和无法路由的消息。

提前感谢您的建议。

0 投票
0 回答
9 浏览

amazon-web-services - 如何在 EMR 上的批处理作业中处理不良事件

我正在运行一个 EMR,它处理一些包含大约 15-20M 日志事件的日志。有时很少有日志事件包含格式错误的数据,这些数据会破坏我的管道。我正在寻找一些选项来将这些日志事件放入文件或队列中。然后我可以验证它们,将它们报告给相应的服务并重新处理它们可能不在同一个管道中,因为分析需要一些时间来更正日志。

运行批处理作业的不同公司可用和广泛使用的最佳选项是什么?

0 投票
0 回答
31 浏览

amazon-web-services - 带有 DLQ 消息结构的 Kinesis

我为 Kinesis 流定义了一个 DLQ,现在我正在创建一个 lambda,它将接收 SQS 消息并处理它们。我在AWS docs看到消息格式是:

我搜索并没有找到AWS SDK for Go API Reference的内置结构,也没有找到。

如果有人知道是否有我可以重用的现有结构?或者我将需要创建和维护一个新结构

0 投票
1 回答
39 浏览

java - Java JMS - 将消息显式发送到死信队列

有没有办法明确告诉代理向队列分配的死信队列发送消息?

我知道我们可以配置一个队列以在一定次数的重新传递尝试后自动向 DLQ 发送消息。这对于数据库问题、网络问题等临时错误非常有意义。但是,在业务规则错误的情况下,让该消息在 X 分钟内尝试重新传递 X 次是没有意义的。当我们知道这是违反业务规则/格式错误的消息等时发送到死信队列。

我希望有一种方法,当我们发现违反业务规则时,我们可以立即将其发送到该队列死信队列。我知道我可以显式地编写代码将其发送到死信队列,但我们将有许多(数十个)可配置队列,并且它们相关的死信队列将由我们的中间件团队配置。我不想明确编码死信队列队列名称,甚至在我自己的属性中配置它们。我希望有一种简单的方法可以告诉代理立即将消息发送到死信队列而不尝试重新传递。

看起来应该是这样的message.deadLetter()。我觉得我一定错过了一些简单的东西,但我在消费者、会话或消息上看不到任何类似的机制。