知名度較高的有thrift(fb的)、dubbo(阿里的)、grpc(google)等
1、建立通訊
首先要解決通訊的問題:即a機器想要呼叫b機器,首先得建立起通訊連線,主要是通過在客戶端和伺服器之間建立tcp連線。
2、服務定址
要解決定址的問題,a伺服器上如何連線到b伺服器(如主機或ip位址)以及特定的埠,方法的名稱是什麼。
3、網路傳輸
1)序列化
2)反序列化
當b伺服器接收到a伺服器的請求之後,又需要對接收到的引數等資訊進行反序列化操作。
4、服務呼叫
b伺服器進行本地呼叫(通過**proxy)之後得到了返回值,此時還需要再把返回值傳送回a伺服器,同樣也需要經過序列化操作,然後再經過網路傳輸將二進位制資料傳送回a伺服器。
通常,一次完整的prc呼叫需要經歷如上4個步驟。
mq訊息中介軟體比較:
rocketmq、kafka、rabbitmq的架構設計與選型
典型的特點:
1、解耦
2、可靠投遞
3、廣播
4、最終一致性
5、流量削峰
6、訊息投遞保證
7、非同步通訊(支援同步)
8、提高系統吞吐、健壯性
典型的使用場景:秒殺業務中利用mq來實現流量削峰,以及應用解耦使用。
1.在架構上,rpc和mq的差異點是,message有乙個中間結點message queue,可以把訊息儲存。
2.同步呼叫:對於要立即等待返回處理結果的場景,rpc是首選。
3.mq 的使用,一方面是基於效能的考慮,比如服務端不能快速的響應客戶端(或客戶端也不要求實時響應),需要在佇列裡快取。
另外一方面,它更側重資料的傳輸,因此方式更加多樣化,除了點對點外,還有訂閱發布等功能。
4.而且隨著業務增長,有的處理端處理量會成為瓶頸,會進行同步呼叫改造為非同步呼叫,這個時候可以考慮使用mq。
詳解RPC遠端呼叫和訊息佇列MQ的區別
rpc remote procedure call 遠端過程呼叫,主要解決遠端通訊間的問題,不需要了解底層網路的通訊機制。知名度較高的有thrift fb的 dubbo 阿里的 1 建立通訊 首先要解決通訊的問題 即a機器想要呼叫b機器,首先得建立起通訊連線,主要是通過在客戶端和伺服器之間建立tcp...
RPC和RMI遠端呼叫
遠端呼叫使得呼叫遠端伺服器的物件 方法的方式就和呼叫本地物件 方法的方式差不多,因為我們通過網路程式設計把這些都隱藏起來了。遠端呼叫是分布式系統的基礎。遠端呼叫一般分為兩種,遠端過程呼叫 rpc 和遠端方法呼叫 rmi rpc屬於函式級別的遠端呼叫,其多是通過http傳輸資料,資料形式有xml js...
RPC遠端呼叫和重試冪等
1 在同步rpc遠端呼叫中,如果呼叫介面失敗或者超市,這時候客戶端都會採用重試機制,這就導致可能存在伺服器服務處理重複消費 2 介面產生重複消費的原因 1 表單重複提交 2 rpc呼叫介面過程中產生重試 3 說下rpc呼叫介面如何保證冪等性 token 訊息中介軟體如何保證明燈性 全域性唯一id 當...