首页 > 解决方案 > Apache Camel 立即从 SQS 读取

问题描述

我有非常庞大的骆驼管道,它从使用来自 SQS 的消息开始。整个过程所需的时间各不相同。从 5 秒到 30 分钟,这里很难猜。

我想要达到的目标:

  1. 不要猜测可见性超时大小,只要消息被消费就从 SQS 中删除消息。

我已经尝试过的:

  1. 尝试过 Camel 选项 deleteAfterRead=true -> 没有帮助,因为如文档中所述:Delete message from SQS after it has been read(并由路由处理)。而且我有巨大的管道。所以处理的需求在这里失败。
  2. 试图增加可见性超时,但正如我所说,这只是一个猜谜游戏,我想开发更可靠的解决方案。

谢谢你的帮助!

标签: javaspringapache-camelamazon-sqs

解决方案


如果您没有完成处理它,您当然不应该在使用它后立即删除它,因为如果您的应用程序崩溃,您将丢失该消息。

如果您意识到您的处理时间接近原始可见性超时,您应该做的是手动延长可见性超时。不确定如何在 Camel 中实现它,但我们之前已集成到默认值中springframework.cloud.aws.messaginghttps ://github.com/Mercateo/sqs-utils


推荐阅读