RPC和Message Queue對比
RPC、MQ的結構對比:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 來源: <http://www.cnblogs.com/xiazh/archive/2013/03/17/2964203.html> |
功能特點
在架構上,RPC和Message的差異點是,Message有一個中間結點Message Queue,可以把消息存儲。
消息的特點
- Message Queue把請求的壓力儲存一下,逐漸釋放出來,讓處理者按照自己的節奏來處理。
- Message Queue引入一下新的結點,讓系統的可靠性會受Message Queue結點的影響。
- Message Queue是異步單向的消息。發送消息設計成是不需要等待消息處理的完成。
是以對于有同步傳回需求,Message Queue則方向。
PRC的特點
-
同步調用,對于要等待傳回結果/處理結果的場景,RPC是可以非常自然直覺的使用方式。
# RPC也可以是異步調用。
- 由于等待結果,Consumer(Client)會有線程消耗。
如果以異步RPC的方式使用,Consumer(Client)線程消耗可以去掉。但不能做到像消息一樣暫存消息/請求,壓力會直接傳導到服務Provider。
适用場合說明
- 希望同步得到結果的場合,RPC合适。
- 希望使用簡單,則RPC;RPC操作基于接口,使用簡單,使用方式模拟本地調用。異步的方式程式設計比較複雜。
- 不希望發送端(RPC Consumer、Message Sender)受限于處理端(RPC Provider、Message Receiver)的速度時,使用Message Queue。
随着業務增長,有的處理端處理量會成為瓶頸,會進行同步調用到異步消息的改造。
這樣的改造實際上有調整業務的使用方式。
比如原來一個操作頁面送出後就下一個頁面會看到處理結果;改造後異步消息後,下一個頁面就會變成“操作已送出,完成後會得到通知”。
不适用場合說明