我正在寻找骆驼路线上的简单延误重试交货。我已经配置

from("rss:" + rssUrl + "?splitEntries=false&delay=15s").bean(rssHandler) .onException(ConnectException.class).redeliveryDelay(10000).backOffMultiplier(2).maximumRedeliveries(5);


在我的路线上,但是在看到它不起作用后,我得知必须配置一个死信通道,否则基本上将忽略此配置。

所以我补充说:

errorHandler(deadLetterChannel("log:error"));


然而,对于我的Java Camel配置,我正在寻找最简单的死信通道实现,该实现不需要我说ActiveMQ或类似的东西,我会对基于简单的基于内存的重试机制感到满意,但无法保证。不幸的是,到目前为止我还没有找到任何东西,因此如果有人可以帮助我,请访问这里,提出一种简单的方法来配置带有最少的死信通道组件的重试。

最佳答案

使用seda组件而不是日志组件可以为您提供内存中的死信目的地。例如。将“ log”替换为“ seda”。但是,请记住,一旦重新交付用尽,该消息将驻留在此队列中,因此将存在于内存中,除非有一个进程对该消息进行出队或清除早于为此队列配置的指定时间段的消息。

https://camel.apache.org/dead-letter-channel.html

您还可以只配置您的配置,以将异常标记为已处理,并在达到最大重新发送次数后放弃该消息

10-05 21:12