问题标签 [dead-letter]
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.
scala - Dead Letters using Akka to create a message ring
I'm trying to create an example Akka application using remote actors. The goal is to create for example 16 actors that exchange messages in a sequential manner (actor 16 talks to actor 15, 15 to 14, etc, and 1 talks to actor 16). However, I'm having trouble with the communication, since I continuosly have this error.
[INFO] [05/04/2017 15:45:58.248] [ActorFlasks-akka.actor.default-dispatcher-4] [akka://ActorFlasks/deadLetters] Message [java.lang.String] from Actor[akka://ActorFlasks/user/16#-2022012132] to Actor[akka://ActorFlasks/deadLetters] was not delivered. [1] dead letters encountered.
To do this, I run 16 terminal instances of the application, always with a different configuration file. I create the actorsystem in each instance like so:
An example of a configuration file is this:
And the actor is defined like this:
It is a simple example to get me started, but I can't get it working no matter what I try. Does someone know where I'm failing?
Thank you in advance,
EDIT:
azure - 为什么消息是死信的确切异常信息
我有一个将消息发送到天蓝色服务总线队列的应用程序。我还有另一个应用程序,它从这个队列中读取消息并进行处理,然后将处理后的消息发送到主题。
我看到我的大部分消息都转移到了 dlq。当我在 azure 服务总线资源管理器中看到异常时,我看到它对所有消息都抛出了相同的异常 - 超出了最大重试次数。我想知道实际的异常,因为该异常将消息移至 dlq。
在哪里可以找到此异常详细信息?我相信这个异常细节可能会存储在任何地方?
azureservicebus - 在事务范围内重新提交死信队列消息
鉴于只有一个顶级实体能够参与事务的限制,我如何从死信队列中读取消息并将其放回事务范围内的父队列中?通常我会使用传输队列将消息从一个队列移动到另一个队列作为原子操作,但我不相信 DLQ 有传输队列,即使他们有,我不会有处理传输的问题排队DLQ!
我需要以安全的方式重新提交,并且在重新提交过程中没有丢失消息的风险。
java - Spring + RabbitMQ 指数退避与 RetryTemplate 无响应
我正在开发一个 Spring 项目,并试图为 RabbitMQ 队列实现带有死字的指数退避。
在此过程中,我创建了一个死信队列和一个死信交换(扇出),并将原始队列的 x-dead-letter-exchange 参数设置为死信交换的名称,并创建了一个带有 ExponentialBackOffPolicy 的 RetryTemplate .
出于测试目的,我的消费者只是通过抛出异常来拒绝它收到的所有消息。
这是我的 RabbitMQConfiguration 类的样子:
消费者的相关部分基本上是这样的:
对于自动装配的整数值,使用默认值。
在运行此程序时,我看到交换和队列按预期在 rabbitmq 上创建,并在相关时使用预期的绑定和参数。
但是,当我使用路由键“orderPlanQueue”将消息传递给 orderPlanExchange 时,会导致无限循环,因为消息在队列中被拒绝并重复替换。
另一方面,如果将 IllegalArgumentException 替换为 AmqpRejectAndDontRequeueException,则在第一次拒绝尝试时将消息简单地扔到死信队列中。
如果有人能指出我在这里可能做错了什么,没有应用重试策略,我将不胜感激。
编辑:根据 Artem 的建议使用 StatefulRetryOperationsInterceptor 编写代码。
amazon-web-services - 如何将消息在 SQS 队列中保存超过 14 天?
我有一个队列,上面将有大量消息,这些消息将在很多天后处理。队列中的一些第一批消息可能仍然在等待处理机会超过 14 天,即最长消息保留时间。
我最初的想法是设置一个死信队列以在这些消息过期时将其接收,然后将它们的新副本放回主队列,但经过一番阅读后,似乎超过保留时间的消息被删除了,不发送到 DLQ。
是否有一种策略可以用来在邮件达到 14 天标记之前检测它们并将它们的新副本放在队列中,这样它们就不会在没有被处理的情况下简单地丢失?
谢谢
scala - Akka Cluster - 来自死信的消息?
我正在使用 Akka Cluster,我遇到了一个有趣的问题。我在节点 A (akka.tcp://as@127.0.0.1:2554) 上有一个演员 Actor1。这个演员在另一个节点上找到另一个演员,使用
wherem
是集群的成员。actor2sel 是
后来Actor1转发了一条消息给Actor2,Actor2正确的拿到了消息,但是发送者是deadLetters:
您对可能的原因有任何指示吗?
java - 我们如何分析 Activemq 死信队列中的消息
然后,Broker 接收消息并将其发送到死信队列,以便稍后对其进行分析。
这些是来自 apache activemq 文章的引用。我的策略也是一样的。我想稍后分析死信队列中的消息。我怎样才能做到这一点?
java - 重新投递策略后如何阻止消息进入 Activemq 中的死信队列(DLQ)
这是我的经纪人的配置。有人可以指定配置吗,我如何在我的重新投递策略后阻止消息进入 DLQ?
注意:我已经访问过这个,http://activemq.apache.org/message-redelivery-and-dlq-handling.html
spring - spring boot rabbitmq死信队列配置不起作用
我配置了spring boot rabbit的死信队列,但是ErrorHandler从来没有收到任何消息。我搜索了有关死信队列的所有问题,但无法弄清楚。谁能帮我 ?
RabbitConfig.java 配置死信队列/交换:
ErrorHandler.java 处理死信队列:
MailServiceImpl.java 处理 MAIL_QUEUE:
api - 通过 RabbitMq 路由每个第三方 API 调用以使用其死信机制是否有意义?
例如,我们想将我们的一些信息传递给第三方 API。我们不能依赖此 API 何时会出现故障,即网络错误。所以,我们有两个选择:
- 记录在此 API 中推送的请求失败,并尝试通过一些计划的作业推送它们 - 问题是如果其中一些请求由于 API 关闭而失败,我们也需要重新推送这些失败的请求,这将继续进行。
- 使用 Rabbitmq 死信机制之类的东西——你可以使用它的重试机制来处理失败的请求,但这会增加维护,如果在多次死信重试后它仍然失败怎么办?
我们应该如何处理这样的第三个 API 进程并再次推送失败的请求?