首頁  >  問答  >  主體

java - 並發操作下關於隊列的疑問?

常用的rabbitmq,activeMq隊列,多個消費者或多個執行緒去取隊列中的數據,會不會出現不同消費者同時到達取到同一個數據的情況?目前只知道redis由於是單執行緒的,做隊列的時候可以避免這種情況。

PHP中文网PHP中文网2674 天前1002

全部回覆(2)我來回復

  • 漂亮男人

    漂亮男人2017-06-23 09:16:19

    訊息隊列的發布訂閱模式有多種,有一個訊息多個消費者都能獲取到的模式,有一個訊息發送到指定消費者模式,選擇合適你自己的~
    你說的這種可以用rabbitmq的direct模式

    回覆
    0
  • 大家讲道理

    大家讲道理2017-06-23 09:16:19

    任何訊息佇列,只要自稱是訊息佇列服務的,都會保證這點,無須擔心。但要注意的是,訊息隊列有兩種模式,生產者消費者模式和發布者訂閱者模式,前者保證每條訊息只會被消費一次,後者保證每條訊息能達到所有的訂閱者,因此被消費的次數不確定。

    回覆
    0
  • 取消回覆