日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

學(xué)習(xí)grpc文件,grpc框架

簡單點(diǎn),HTTP是協(xié)議,RPC是概念!實(shí)現(xiàn)RPC可以基于HTTP協(xié)議(Feign),TCP協(xié)議(Netty),RMI協(xié)議(Soap),WebService(XML—RPC)框架 。傳輸過程中,也因?yàn)樾蛄谢绞降牟煌?,又有一些框架和協(xié)議,比如Dubbo中的Dubbo協(xié)議,gRpc—Protobuf序列化協(xié)議等等 。
GRPC是跨語言的,為何偏偏在go語言上這么火?

學(xué)習(xí)grpc文件,grpc框架


首先grpc最大的使用場景是微服務(wù),go語言很容易編譯成不依賴第三方動態(tài)鏈接庫的可執(zhí)行程序,而且這個可執(zhí)行程序通常也不大,這個特性對容器化非常友好 。所以go順利成為微服務(wù)領(lǐng)域扛把子的語言,k8s,etcd,docker 這些核心組件都是用golang實(shí)現(xiàn)的 。其次你如果了解go的grpc的話,你會看到很多grpc的插件,現(xiàn)在很多go服務(wù)化框架都不會僅僅提供grpc接口,利用插件功能順帶把http接口也實(shí)現(xiàn)了,也就是說一個服務(wù)提供了grpc和restful api 。
微服務(wù)調(diào)用為什么用RPC框架,http不更簡單嗎?
學(xué)習(xí)grpc文件,grpc框架


簡單點(diǎn),HTTP是協(xié)議,RPC是概念!實(shí)現(xiàn)RPC可以基于HTTP協(xié)議(Feign),TCP協(xié)議(Netty),RMI協(xié)議(Soap),WebService(XML—RPC)框架 。傳輸過程中,也因?yàn)樾蛄谢绞降牟煌?,又有一些框架和協(xié)議,比如Dubbo中的Dubbo協(xié)議,gRpc—Protobuf序列化協(xié)議等等 。
【學(xué)習(xí)grpc文件,grpc框架】其實(shí),都是基于遠(yuǎn)程調(diào)用的概念,何為遠(yuǎn)程調(diào)用?重點(diǎn)是,RPC就是遠(yuǎn)程調(diào)用,遠(yuǎn)程調(diào)用就是客戶端把調(diào)用的接口,參數(shù),參數(shù)類型,方法,返回值,返回值類型等(這些稱為方法簽名),通過如上的協(xié)議,發(fā)送給服務(wù)端,告知服務(wù)端需要調(diào)用的接口方法,這個過程就是RPC的實(shí)現(xiàn)過程!HTTP和RPC是不同層面的兩個東西!性能方面,HTTP本身是基于TCP協(xié)議的,屬于應(yīng)用層協(xié)議,所以HTTP協(xié)議本身在實(shí)現(xiàn)過程中就會占用大量的資源(內(nèi)存,帶寬等),性能上肯定沒有通過TCP直接實(shí)現(xiàn)RPC協(xié)議快,不管HTTP如何優(yōu)化肯定的是不如TCP的!而TCP則是依靠字節(jié)碼,現(xiàn)在普遍采用的是將客戶端調(diào)用的接口信息,序列化的方式發(fā)送給服務(wù)端,序列化框架又包含很多(Hession,Protobuf,Kryo等等,序列化性能最高的是Kryo,序列化后字節(jié)碼最小的是Protobuf),序列化后的字節(jié)碼越小,占用帶寬越少,序列化時(shí)間越短,線程IO等待時(shí)間就會越小 。

    推薦閱讀