有人可以让我知道如何使用camel-redis来确保交付吗?使用Redis的骆驼保证交付
我的使用情况是类似如下: -
from("jetty:http://localhost:8888/hello").to("redis://...")
一旦消息被写入Redis的发送成功响应HTTP客户端,使客户端不会阻塞等待响应。
然后在另一个途径我要处理来自Redis的消息像下面,然后从Redis的删除它时,处理成功
from("redis://...").to(...)
有人可以让我知道如何使用camel-redis来确保交付吗?使用Redis的骆驼保证交付
我的使用情况是类似如下: -
from("jetty:http://localhost:8888/hello").to("redis://...")
一旦消息被写入Redis的发送成功响应HTTP客户端,使客户端不会阻塞等待响应。
然后在另一个途径我要处理来自Redis的消息像下面,然后从Redis的删除它时,处理成功
from("redis://...").to(...)
好方法 - 它被称为“存储转发”模式。
并且消息没有传递到最终目的地?
那么 - 那么“try/catch”呢?尝试发送消息,如果失败,只需将其放回到redis。目的地,重试次数,重试periode和死信队列等
使用任何简单的店:
通常这种模式是利用消息(JMS),其中消息是有一些重要的功能实现(redis,jdbc,...)你必须自己实现这些消息传递功能。 (我必须管理我对Redis不太好,但使用简单的JDBC作为消息存储库也带来同样的问题)。
至少添加重试计数和“下一个送货时间戳”。当邮件未在预定义计数后发送时发生什么 - 取决于您 - 发送邮件,写入日志,停止世界......
好方法 - 它被称为“存储和转发”模式。请参阅http://redis.io/commands/rpoplpush。实施该模式的问题有多严重? – gusto2
如何在路径'from(“redis://”)。(...)。(...)'中读取redis消息后出现错误,并且消息未传递到最后的目的地?如何将消息添加回原始列表? – tuk
如果我正在使用BRPOPLPUSH,并且没有确认超时的信息,请将消息从目标列表中移回原始列表。如果有确认删除该消息。你能建议什么是最好的方式来实现这个使用java dsl? – tuk