文章詳情頁
java - 并發(fā)操作下關(guān)于隊(duì)列的疑問?
瀏覽:92日期:2023-10-26 15:47:21
問題描述
常用的rabbitmq,activeMq隊(duì)列,多個(gè)消費(fèi)者或者多個(gè)線程去取隊(duì)列中的數(shù)據(jù),會不會出現(xiàn)不同消費(fèi)者同時(shí)到達(dá)取到同一個(gè)數(shù)據(jù)的情況?目前只知道redis由于是單線程的,做隊(duì)列的時(shí)候可以避免這種情況。
問題解答
回答1:消息隊(duì)列的發(fā)布訂閱模式有多種,有一個(gè)消息多個(gè)消費(fèi)者都能獲取到的模式,有一個(gè)消息發(fā)送到指定消費(fèi)者模式,選擇合適你自己的~你說的這種可以用rabbitmq的direct模式
回答2:任何消息隊(duì)列,只要自稱是消息隊(duì)列服務(wù)的,都會保證這點(diǎn),無須擔(dān)心。但要注意的是,消息隊(duì)列有兩種模式,生產(chǎn)者消費(fèi)者模式和發(fā)布者訂閱者模式,前者保證每條消息只會被消費(fèi)一次,后者保證每條消息能達(dá)到所有的訂閱者,因此被消費(fèi)的次數(shù)不確定。
標(biāo)簽:
java
相關(guān)文章:
1. thinkPHP5中獲取數(shù)據(jù)庫數(shù)據(jù)后默認(rèn)選中下拉框的值,傳遞到后臺消失不見。有圖有代碼,希望有人幫忙2. linux運(yùn)維 - python遠(yuǎn)程控制windows如何實(shí)現(xiàn)3. javascript - 從mysql獲取json數(shù)據(jù),前端怎么處理轉(zhuǎn)換解析json類型4. django - Python error: [Errno 99] Cannot assign requested address5. android - 安卓做前端,PHP做后臺服務(wù)器 有什么需要注意的?6. python小白 關(guān)于類里面的方法獲取變量失敗的問題7. mysql - ubuntu開啟3306端口失敗,有什么辦法可以解決?8. extra沒有加載出來9. python - Scrapy如何得到原始的start_url10. 求救一下,用新版的phpstudy,數(shù)據(jù)庫過段時(shí)間會消失是什么情況?
排行榜

熱門標(biāo)簽