1:什麼叫消息中間件(MQ)redis
沒有具體的定義。消息中間件屬於分佈式系統中的一個工具,相似於redis、mongoDB等第三方的產品。關注 消息的發送和接受,利用高效可靠的異步消息傳遞機制,對分佈式系統中的各個子系統進行集成。併發
2:爲何使用消息中間價異步
解耦:以前的項目生成一個war包,把war包拆分紅不一樣的系統。利用消息中間件進行解耦。(這種是鬆耦合)分佈式
異步處理:咱們只須要把消息放入到mq當中,不用去管後面的操做,這樣就能夠實現異步的機制。高併發
緩衝:當高併發數據量不少的時候,mq可能處理不了,這時候就能夠先把數據保存起來。而後一點點處理掉。工具
伸縮性:當高併發的時候,咱們的接受方或者消費方處理起來比較慢,能夠添加集羣來保證咱們系統正常運行。當沒有高併發的時候,也能夠刪除集羣中的應用。spa
擴展性:當添加一個子系統的時候,只須要訂閱這個mq就無縫的鏈接,當不須要這個子系統的時候,直接刪除就行。日誌
3:應用場景中間件
解耦:訂單接口調用物流接口,這時候兩個接口是耦合在一塊兒的,能夠將這兩個接口進行拆分,經過消息中間件進行關聯。blog
異步:用戶註冊,當用戶註冊成功之後,會給用戶發註冊成功的短信、郵件。註冊接口只關注註冊,發短信業務是次要的。這樣子也能夠縮短接口的相應時間。
緩衝:對日誌的操做,都是數據量很大的,這時候能夠保存到mq中,進行緩衝。
消息通信也可使用mq進行操做。
流量削峯:例如秒殺或者團購,在某一時間流量很高,日常很穩定。把數據放入到mq中,而後緩慢的處理,在保存結果。
4:經常使用mq的比較
mq和RPC的區別
同步性:RPC是同步的,mq是異步的。
依賴性:RPC是強依賴的,mq是沒有依賴的(只是鬆耦合)