不過,最近有朋友問我,RabbitMQ RPC 是干嘛的,有什么用。

其實,RabbitMQ RPC 就是通過消息隊列(Message Queue)來實現(xiàn)rpc的功能,就是,客戶端向服務(wù)端發(fā)送定義好的Queue消息,其中攜帶的消息就應(yīng)該是服務(wù)端將要調(diào)用的方法的參數(shù) ,并使用Propertis告訴服務(wù)端將結(jié)果返回到指定的Queue

1.RabbitMQ RPC的特點

  • Message Queue把所有的請求消息存儲起來,然后處理,和客戶端解耦。
  • Message Queue引入新的結(jié)點,系統(tǒng)的可靠性會受Message Queue結(jié)點的影響。
  • Message Queue是異步單向的消息。發(fā)送消息設(shè)計成是不需要等待消息處理的完成。

所以對于有同步返回需求,Message Queue是個不錯的方向。

2.普通PRC的特點

  • 同步調(diào)用,對于要等待返回結(jié)果/處理結(jié)果的場景,RPC是可以非常自然直覺的使用方式。當(dāng)然RPC也可以是異步調(diào)用。
  • 由于等待結(jié)果,客戶端會有線程消耗。

如果以異步RPC的方式使用,客戶端線程消耗可以去掉。但不能做到像消息一樣暫存消息請求,壓力會直接傳導(dǎo)到服務(wù)端。

3.適用場合說明