簡體   English   中英

帶有RabbitMQ的春季雲流

[英]Spring cloud stream with RabbitMQ

目前,在我的項目中,我正在使用Rabbitmq的Spring Cloud Stream。 一切都很好,但是問題是當我在StreamListener中為消息類型設置條件時。 如果RabbitMQ與類型不匹配(找不到ID為ZZZZZZ的消息的@StreamListener匹配項),則此消息將從隊列中消失。 如果郵件類型錯誤,我不想刪除此郵件。 這個問題有解決方案嗎?

有兩種方法可以做到:

  • 如果消息的類型錯誤,則引發異常。 在這種情況下,由於未成功處理消息且未收到ACK,因此不會從隊列中刪除該消息。
  • 一旦檢測到類型錯誤,就可以自己將消息插入隊列中。

兩種方法都可能遭受無限循環的困擾。 消息已處理,類型錯誤,重新插入,然后重復此過程。 為了避免這種情況,您可以添加一些重新插入策略,例如:指數延遲或有限數量的重新插入等。

但是會引起一些疑問:為什么您的服務會消耗本不應該的消息? 也許您需要特定處理器的此消息? 在這種情況下,您可以路由到合適的處理器。

暫無
暫無

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

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