什么是rpc?
遠程過程調用(英語:Remote Procedure Call,縮寫為 RPC)是一個計算機通信協議。該協議允許運行于一臺計算機的程序調用另一臺計算機的子程序,而程序員無需額外地為這個交互作用編程。如果涉及的軟件采用面向對象編程,那么遠程過程調用亦可稱作遠程調用或遠程方法調用.
rpc需要考慮哪些點?
- 傳遞:參數(值類型)
- 傳遞:參數(引用類型)
復制所有值
規定好協議(序列化?xml,json?)
大端小端編碼
- 通信協議:(tcp/ip?)
- 其他:安全,效率,異步回調等
requestid,存儲request和回調函數的對應關系
rpc vs http?
如果你想只記住一點,那么就請記住 RPC是以動詞為中心的, REST是以名詞為中
心的, 此處的 動詞指的是一些方法, 名詞是指資源.
你會發現,以動詞為中心,意味著,當你要需要加入新功能時,你必須要添加更多的動詞,
這時候服務器端需要實現 相應的動詞(方法), 客戶端需要知道這個新的動詞并進行調
用.
而以名詞為中心, 假使我請求的是 hostname/friends/, 無論這個URI對應的服務怎么
變化,客戶端是無需 關注和更新的,而這種變化對客戶端也是透明的.
至于其它的區別,如對實現語言的依賴, 耦合性等,這些都是上面提到的這個根本區別所衍生的.