簡體   English   中英

Spring 雲 Stream + RabbitMQ - 使用隊列中的現有消息

[英]Spring Cloud Stream + RabbitMQ - Consuming existing messages in queue

我有一個在服務器中運行的 RabbitMQ 消息代理,我正在嘗試使用 Spring Cloud Stream 配置生產者和消費者。 我的生產者每秒都在隊列中創建消息,而我的消費者以相同的速度讀取它們。 但是,如果我停止我的消費者並且生產者繼續推送消息,當我再次重新啟動我的消費者時,它無法檢索在它關閉的那段時間創建的消息,只能拾取從它啟動時產生的消息. 如何讓我的消費者在啟動時使用隊列中的現有消息?

這是我的消費者屬性:

cloud:
    stream:
      bindings:
        input:
          destination: spring-cloud-stream-demo
          consumer:
            auto-bind-dlq: true
            republishToDlq: true
            maxAttempts: 5

還有我的 Producer 屬性:

cloud:
    stream:
      bindings:
        output:
          destination: spring-cloud-stream-demo

感謝任何幫助!

您需要在消費者(輸入)綁定中添加一個group 否則它將綁定一個匿名的、自動刪除的隊列到交換器。

使用group ,則綁定一個永久的、持久的隊列。

我也有一個問題。 在消費者起床之前,我向生產者發送數據。 一段時間后,我喚醒了消費者。 消費者收到打印的數據,因為它站起來。 所以它不會從一開始就進行閱讀。 有沒有什么辦法解決這一問題? ——加里·羅素

暫無
暫無

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

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