更新時間:2020-05-20 11:41:09 來源:動力節點 瀏覽4625次
消息隊列是指能夠提供消息排隊消費功能的軟件程序,是消息隊列中間件的一部分。消息隊列中間件是分布式系統中重要的組件。接下來要分享的小編就給大家講解消息隊列的優勢、類型以及使用場景。
主要解決應用解耦、異步消息、流量削鋒等問題,實現高性能、高可用、可伸縮和最終一致性架構。
消息隊列的常見類型
1.Kafka:由Apache軟件基金會開發的一個開源流處理平臺,由Scala和Java編寫,是一種高吞吐量的分布式發布訂閱消息系統,支持單機每秒百萬并發。
2.RocketMQ:阿里開源的消息中間件,是一款低延遲、高可靠、可伸縮、易于使用的消息中間件。
3.RabbitMQ:由Erlang(有著和原生Socket一樣低的延遲)語言開發基于AMQP協議的開源消息隊列系統,能保證消息的可靠性、穩定性、安全性。
1.應用解耦。消息隊列可以使消費者和生產者直接互不干涉、互不影響,只需要把消息發送到隊列即可,而且可獨立的擴展或修改兩邊的處理過程。常見場景:用戶下單后,訂單系統需要通知庫存系統。
2.流量削鋒。當客戶端訪問量突然劇增,對服務器的訪問已經超過服務所能處理的最大峰值,甚至導致服務器超時負載崩潰,使用消息隊列可以解決這個問題,可以通過控制消費者的處理速度和生產者可進入消息隊列的數量等來避免峰值問題。常見場景:秒殺活動,一般會因為流量過大導致流量暴增,應用掛掉。
3.異步通信。消息隊列提供了異步處理機制,可以把消息放在隊列中并不立即處理,需要的時候處理,或者異步慢慢處理,一些不重要的發送短信和郵箱功能可以使用。常見場景:用戶注冊后需要發注冊郵件和注冊短信。
4.排序保證。消息隊列可以控制數據處理的順序,因為消息隊列本身使用的是隊列這個數據結構,FIFO(先進選出),在一些場景數據處理的順序很重要,比如商品下單順序等。
以上就是動力節點java培訓機構的小編針對“Java菜鳥教程之消息隊列”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習