不過(guò),最近有朋友問(wèn)我,RabbitMQ RPC 是干嘛的,有什么用。

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

1.RabbitMQ RPC的特點(diǎn)

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

所以對(duì)于有同步返回需求,Message Queue是個(gè)不錯(cuò)的方向。

2.普通PRC的特點(diǎn)

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

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

3.適用場(chǎng)合說(shuō)明