古詩詞大全網 - 藝術簽名 - 微服務調用為什麽用RPC框架,http不更簡單嗎?

微服務調用為什麽用RPC框架,http不更簡單嗎?

簡單點,HTTP是協議,RPC是概念!實現RPC可以基於HTTP協議(Feign),TCP協議(Netty),RMI協議(Soap),WebService(XML—RPC)框架。傳輸過程中,也因為序列化方式的不同,又有壹些框架和協議,比如Dubbo中的Dubbo協議,gRpc—Protobuf序列化協議等等。其實,都是基於遠程調用的概念,何為遠程調用?

重點是,RPC就是遠程調用,遠程調用就是客戶端把調用的接口,參數,參數類型,方法,返回值,返回值類型等(這些稱為方法簽名),通過如上的協議,發送給服務端,告知服務端需要調用的接口方法,這個過程就是RPC的實現過程!HTTP和RPC是不同層面的兩個東西!

性能方面,HTTP本身是基於TCP協議的,屬於應用層協議,所以HTTP協議本身在實現過程中就會占用大量的資源(內存,帶寬等),性能上肯定沒有通過TCP直接實現RPC協議快,不管HTTP如何優化肯定的是不如TCP的!而TCP則是依靠字節碼,現在普遍采用的是將客戶端調用的接口信息,序列化的方式發送給服務端,序列化框架又包含很多(Hession,Protobuf,Kryo等等,序列化性能最高的是Kryo,序列化後字節碼最小的是Protobuf),序列化後的字節碼越小,占用帶寬越少,序列化時間越短,線程IO等待時間就會越小。所以,在具體應用層面有很多可探討的技術,可以根據自己的硬件能力來選擇相應的技術就可以了!

歡迎熱愛技術的人來探討!