簡體   English   中英

Apache Camel 立即從 SQS 讀取

[英]Apache Camel immediate read from SQS

我有非常龐大的駱駝管道,它從使用來自 SQS 的消息開始。 整個過程所需的時間各不相同。 從5秒到30分鍾,這里很難猜。

我想要實現的目標:

  1. 不要猜測可見性超時大小,並在消息被消耗后立即從 SQS 中刪除消息。

我已經嘗試過的:

  1. 嘗試過 Camel 選項 deleteAfterRead=true -> 沒有幫助,因為如文檔中所述:在讀取(並由路由處理)后從 SQS 中刪除消息。 我有巨大的管道。 如此處理的要求在這里失敗。
  2. 試圖增加可見性超時,但正如我所說,這只是一個猜謎游戲,我想開發更可靠的解決方案。

謝謝你的幫助!

如果您沒有完成處理它,您當然不應該在使用它后立即刪除該消息,因為如果您的應用程序崩潰,您將丟失該消息。

如果您意識到處理時間接近原始可見性超時,您應該做的是手動延長可見性超時。 不確定您將如何在 Camel 中實現它,但我們之前springframework.cloud.aws.messaging集成到默認的springframework.cloud.aws.messaginghttps : //github.com/Mercateo/sqs-utils

一種選擇是添加異常處理程序並將異常標記為已處理調用OnExceptionDefinition上的handled(true)

另一種解決方法是將消息發送到wireTap並在那里進行處理。 這將結束路由並導致將deleteMessage發送到隊列。

我自己仍在尋找其他選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM