喜歡更多互聯網技術相關的同學,一定要關注我哦!
之前我講述了一下有關於AMQP協議的基礎知識,沒有了解過AMQP的同學,記得去看一下基礎知識先!
傳送門:
上文更多的是對於AMQP的講述,對於消息中間件RabbitMQ僅有一筆帶過,這次先來講述一下RabbitMQ:
1、什麼是消息隊列(Message Queue)?
官方解答(維基百科):是一種進程間通信或同一進程不同線程間的通信方式。消息的發送者和接收者不需要同時與消息隊列交互,消息會保存在隊列中,直到接收者取回它!
下面就是一個最簡單的消息隊列的示例,發送消息的生產者不用直接和消費者進行連接,可以將消息存儲在消息隊列裡面,等待消費者取出。
2、消息隊列的應用場景:
(1)異步處理:當消息生產與消費的速率不一致的時候,如消息生產1000條/s,而消費10條/s,這時候,假如就需要使用消息隊列,否則根本來不及處理!
原始架構:
使用消息隊列後:可以進行異步處理!
(2)應用解耦:傳統的系統的架構,假如在註冊的時候,都是註冊系統,然後調用短信系統的發驗證碼功能,這樣的耦合度太高了,假如短信系統暫時繁忙,需要等幾十秒的時間,那麼用戶體驗很差。
原始架構:
使用消息隊列後:註冊的時候,直接將註冊信息寫入消息中間價,然後返回給用戶發送成功的結果,然後短信系統再讀取消息中間件的消息,再進行發送短信!這樣用戶體驗度會好很多!
(3)流量控制:在米粉節秒殺小米mix2s的時候,我們常常在排隊等待,為什麼我們在排隊等待呢?因為假如同一時間過多的請求湧入服務器中,很可能會崩掉,所以當我們發起秒殺請求的時候,很可能就是將請求寫入消息隊列中,加入隊列的長度超過最大數量,則直接拋出請求,否則,秒殺業務根據請求規則再做處理!
(4)群聊通訊: 在聊天室,每個用戶發送的消息都存在中間件,然後每個用戶都可接收到其他用戶的消息!
接下來會講解中間件rabbitMQ的幾種概念模型!有疑問的同學可以私信哦!
喜歡的同學,記得收藏、點贊、轉發、關注了哦!
閱讀更多 猿小生 的文章