消息隊列與RPC的區別

一. 區別

  1.消息隊列可以積壓消息,讓消費者能夠按照本身的節奏處理消息,可是RPC不能.服務器

  2.消息隊列是一個異步的過程(生產者發送消息以後,不會等待消息的處理),RPC是一個同步的過程.併發

  3.消息隊列的生產者不能得知誰消費了消息,消費結果是否成功,而RPC的調用者明確知道被調用者是誰,處理結果也能獲取到.異步

  4.因爲消息隊列在生產者和消費者之間還有一個queue節點,系統性能除了受自身因素影響外還受queue節點影響,而RPC沒有中間節點,,系統性能只受本身的影響.性能

二. 適用場景

  由異同大體就能理解出二者的適用場景是什麼:隊列

  1.消息隊列可以讓服務器的負載不會太高,下降了併發度,因此效率受到了影響,又因爲消息隊列是一個異步的過程,且生產者不能得知消費者的信息,因此消息隊列通常用於實時性要求不高的花費時間的操做.同步

  2.RPC是一個同步的過程,可能會由於忽然高的併發量致使系統出問題,可是RPC具備很高的實時性,因此他通常用戶須要當即返回結果的操做.消息隊列

相關文章
相關標籤/搜索