亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

到底什么是消息隊列?Java中如何實現消息隊列?

到底什么是消息隊列?Java中如何實現消息隊列?

MMTTMM 2019-04-08 09:21:55
網上查了一些資料,感覺都是概念性的很空泛的東西,可是不知道到底是什么東西,如何在Java中實現并使用……在此請教各位前輩到底什么是消息隊列?Java中如何實現消息隊列?
查看完整描述

2 回答

?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

來個個人通俗的解釋吧。
消息隊列,顧名思義首先是個隊列。
隊列的操作有入隊和出隊
也就是你有一個程序在產生內容然后入隊(生產者)
另一個程序讀取內容,內容出隊(消費者)
這是最最基本的概念。
我想你應該是缺乏一個使用場景。
當你不需要立即獲得結果,但是并發量又不能無限大的時候,差不多就是你需要使用消息隊列的時候。
比如你寫日志,因為可能一個客戶端有多個操作去寫,又有很多個客戶端,顯然并發不能無窮大,于是你就需要把寫日志的請求放入到消息隊列里,在消費者那邊依次把隊列中產生的日志寫到數據庫里。
至于怎么實現消息隊列,其實你本身一個普通的隊列就行呀~看你需要什么附加功能而已。
                            
查看完整回答
反對 回復 2019-04-08
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

消息隊列有無數開源實現,一般沒必要自己實現。zmq也好rabbitmq也好甚至redis也好,找一個合適的裝上用就行
就好像rdbms/nosql一樣
技術都是解決問題的,消息隊列解決的是將突發大量請求轉換為后端能承受的隊列請求,比如你的服務器一秒能處理100個訂單,但秒殺活動1秒進來1000個訂單,持續10秒,在后端能力無法增加的情況下,你可以用消息隊列將總共10000個請求壓在隊列里,后臺consumer按原有能力處理,100秒后處理完所有請求(而不是直接宕機丟失訂單數據)
所以說首先別自己實現消息隊列(在你用過各種消息隊列,還看過一兩份源碼之前),其次沒有合適的需求別用消息隊列,YAGNI
                            
查看完整回答
反對 回復 2019-04-08
  • 2 回答
  • 0 關注
  • 2151 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號