訊息佇列 RPC之間的區別與聯絡

2021-10-01 02:10:07 字數 1144 閱讀 8137

我了解一下protocol buffer ,thriftrpc框架和 activemq,rabbitmq訊息**框架, 有點弄不清它們的應用場景 和 它們之間的聯絡與區別。 望 大家 指點迷津! 謝謝!

總的來說,訊息**和rpc框架就像readfileex和readfile的區別

就是個訊息池,不固化訊息形式,你用什麼協議取,訊息池就返回給你什麼樣的資料形式,這樣不同系統間就可以無縫通訊了

mq 是生產者消費者模式。

rpc 是請求響應模式。

mq 是面向資料的。

rpc 是面向動作的。

protocol buffer 只是乙個序列化方式,並不是 rpc。

rpc讓你遠端呼叫象本地呼叫,一般是同步的,例如,你讀乙個檔案,象呼叫本地的函式,就是時間久點。

訊息**框架一般是非同步的,乙個執行緒send,另外乙個執行緒recv

pb只是協議包裝,thrift才是真正的rpc框架

protool buffer 是一種序列化方式,google開源的gprc則是乙個基於protocol buffers序列化的rpc框架,thrift也是個rpc框架 ,這兩個都是跨平台rpc框架 

rpc一般用於同步場景

activemq,rabbitmq是流行的訊息佇列(訊息中介軟體),訊息佇列一般用於非同步場景

protocol buffer 是二進位制序列化方式,類似json(文字),題主說的應該是grpc吧

主要的區別就是訊息佇列適用於非同步場景,而rpc是遠端同步呼叫

就像你去餐廳吃飯,

訊息佇列:不急不急,來了先放碗裡,我和朋友聊著,有空在吃~

rpc:快點啊!我等了好久了- -

最大的區別是,rpc沒有broker, 而訊息佇列是需要管理訊息的儲存的,rpc沒有儲存,只有通訊。

不管是訊息佇列還是rpc呼叫都是 分布式下面的 通訊方式。

訊息佇列最容易理解的方式就是生產者消費者模式,使兩個應用解耦。mq等框架就是對這的具體實現。

rpc中主要有兩點,一是訊息的傳輸格式(文字或二進位制),二是訊息傳輸方式(http或tcp)。有的框架是對前者實現,如probuffer,有的是對後面實現,如netty,還有的就是乙個整體實現,如thrift。

不管怎樣,他們都是為了實現通訊。

訊息佇列是系統級、模組級的通訊。rpc是物件級、函式級通訊。

PV UV IP之間的區別與聯絡

pv是 分析的乙個術語,用以衡量 使用者訪問的網頁的數量。對於廣告主,pv值可預期它可以帶來多少廣告收入。一般來說,pv與來訪者的數量成正比,但是pv並不直接決定頁面的真實來訪者數量,如同乙個來訪者通過不斷的重新整理頁面,也可以製造出非常高的pv。1 什麼是pv值 pv page view 即頁面瀏...

List Map Set之間的聯絡與區別

一 陣列和集合的區別 1.陣列的大小是固定的,並且同乙個陣列只能是相同的資料型別 2.集合的大小是不固定的,在不知道會有多少資料的情況下可使用集合。二 集合的三種型別 list 列表 set 集 map 對映 list介面和set介面屬於collection介面,map介面和collection介面...

詳解RPC遠端呼叫和訊息佇列MQ的區別

rpc remote procedure call 遠端過程呼叫,主要解決遠端通訊間的問題,不需要了解底層網路的通訊機制。知名度較高的有thrift fb的 dubbo 阿里的 1 建立通訊 首先要解決通訊的問題 即a機器想要呼叫b機器,首先得建立起通訊連線,主要是通過在客戶端和伺服器之間建立tcp...