首先說下關於RPC的幾個常見問題git
PRC:Remote Procedure Call 遠程過程調用 在分佈式系統中,每一個節點之間的通訊都是靠RPC來完成 RPC是分佈式應用的基本組件github
Apache的Thrift Google的gprc 阿里巴巴的dubbo等 dubbo應該是3這中最簡單易用的了,但dubbo只支持Java語言,thrift和gprc都是支持跨語言的,而且dubbo內部幫你實現了對分佈式註冊中心zookeeper的使用,另外兩個仍需本身實現對註冊中心的操做。 thrift grpc等之因此支持跨語言,是由於他們本身定義了一套結構化數據存儲格式,如Google的protobuf,用於編解碼對象,做爲各個語言通訊的中間協議。web
RPC是一個概念,普通web開發的curl rest接口,也能夠算做一種基於HTTP協議的RPC調用 RPC的使用比起curl一個重要的點就是忽略底層細節,像使用本地服務同樣調用遠程服務 咱們將在RPC框架中使用動態代理來實現這個要求spring
本系列博客由淺到深,帶你們打造一個支持跨語言,也支持zookeeper的RPC框架 目前先用Java實現json
下一篇博客中 將帶你們用11個Java類 實現一個基於spring的Java RPC框架 暫時不使用一些常見設計模式,暫時不作zookeeper的支持和異常處理等細節問題設計模式
後續版本再對這個demo進行優化,並支持zookeeper 項目最終的代碼放在了個人github上 MeiZhuoRPC 歡迎star,提issues網絡