Camel使用Redis保证交付

时间:2016-10-20 07:58:19

标签: redis apache-camel

有人可以告诉我如何使用camel-redis保证交付吗?

我的用例如下: -

from("jetty:http://localhost:8888/hello").to("redis://...") 

将消息写入redis后,向http客户端发送成功响应,以便客户端不会被阻止等待响应。

然后在另一个路线中,我想从redis处理消息,如下所示,然后在处理成功时从redis中删除它

from("redis://...").to(...)

1 个答案:

答案 0 :(得分:1)

良好的方法 - 它被称为"存储和转发"图案。

  

并且邮件未发送到最终目的地?

然后 - "尝试/捕捉&#34 ;?尝试发送消息,当失败时,只需将其重新发送到redis。

通常,此模式使用消息传递(JMS)实现,其中消息传递具有一些重要功能:目标,重试计数,重试周期和死信队列等。

使用任何更简单的商店(redis,jdbc,...),您必须自己实现这些消息传递功能。 (我必须管理员,我对Redis并不擅长,但使用简单的JDBC作为消息存储也会出现同样的问题。)

至少添加重试次数和"下次发送时间戳"。如果在预定义计数后没有传递消息会发生什么 - 它取决于您 - 发送邮件,写日志,阻止世界......