grpc和rpc的區(qū)別 微服務調用為啥用RPC框架,http不更簡單嗎?
微服務調用為啥用RPC框架,http不更簡單嗎?簡單一點,HTTP是協議,RPC是概念!RPC可以基于HTTP協議(feign)、TCP協議(netty)、RMI協議(soap)和web服務(XML-
微服務調用為啥用RPC框架,http不更簡單嗎?
簡單一點,HTTP是協議,RPC是概念!RPC可以基于HTTP協議(feign)、TCP協議(netty)、RMI協議(soap)和web服務(XML-RPC)框架實現。在傳輸過程中,由于序列化方法的不同,也出現了一些框架和協議,如Dubbo中的Dubbo協議、grpc protobuf序列化協議等。實際上,它們都是基于遠程調用的概念。什么是遠程呼叫?
關鍵是RPC是遠程調用。遠程調用是客戶端通過上述協議向服務器發(fā)送接口、參數、參數類型、方法、返回值、返回值類型等(稱為方法簽名),通知服務器要調用的接口方法。這個過程就是RPC的實現過程!HTTP和RPC是兩碼事
!在性能方面,HTTP本身是基于TCP協議的,屬于應用層協議,所以HTTP協議本身在實現過程中會占用大量的資源(內存、帶寬等)。在性能方面,它肯定不如直接通過TCP實現的RPC協議快。不管HTTP有多優(yōu)化,它絕對沒有TCP那么快!另一方面,TCP依賴于字節(jié)碼。目前常用的是將客戶端調用的接口信息以序列化的方式發(fā)送到服務器端。序列化框架包括許多內容(Hession、protobuf、kryo等)。Kryo具有最高的序列化性能,protobuf具有序列化后最小的字節(jié)碼)。序列化后的字節(jié)碼越小,占用的帶寬越小,序列化時間越長,線程IO延遲越短,線程IO延遲越小。因此,在具體的應用層,有很多技術可以討論。您可以根據自己的硬件能力選擇相應的技術
!歡迎熱愛科技的人們來探索
用thrift或gRPC之類的框架做app和服務器的通信合適嗎?
你好,我是Advantech的技術總監(jiān)。我們剛剛經歷了從Java到golang的開發(fā)語言的演變。讓我分享一下我們的經驗,希望能對你有所幫助。
為什么我們要將Java轉換為golang?
這與我們商業(yè)模式的轉變有很大關系。前面的模型是用戶購買自己的VM,我們的Java應用程序部署在上面。后來,我們開始構建自己的云平臺?;诔杀究紤],我們非常關注在云平臺上運行的應用程序的CPU和內存開銷。仔細想想,如果一個Java應用程序使用2G內存和1核CPU,如果有10個用戶在我們的云平臺上部署應用程序,需要20g內存和10核CPU;但是如果應用程序是用golang編寫的,可能只需要512M內存和0.5核CPU,所以總體資源成本只有5core5g,大大節(jié)省了資源成本。(從公司的角度看,省的錢就是賺的錢)
因此,我們只關注高朗的性能優(yōu)勢,節(jié)省內存和CPU。我們并不否認Java的卓越之處。我們仍然在一些組件上使用Java。
事實上,十大編程語言中沒有golang,Java仍然是排名第一的編程語言:
go在流行程度和使用量上都無法與Java相比:
因此,我的理解是,任何一種語言的選擇都應該結合公司的經營戰(zhàn)略和經營目標來考慮,而不是聽從別人的建議,選擇哪種語言比較流行。
希望對您有所幫助。
Net Core已經開源好幾年了, 為什么不像JVM那樣很多人研究和調優(yōu)其GC算法?
我們已經推出了幾個。Net核心項目,基本上是docker。凈核心2/3。說實話。netcore的GC非常好?;旧?,你不需要像Java那樣做很多優(yōu)化。所以沒有多少研究是正常的。換句話說,如果一個GC需要做很多優(yōu)化,那么它肯定不是一個好的GC。當然,平時編程、常用的非托管對象處理等都必須掌握。
如何才能成為java架構師?我為大家來分析一下?
首先,建筑師不是很好。他必須通過技術力量和建筑師的想法。其次,架構師是Dubbo框架,基本原理是zookeeper、redis分布式緩存、JVM性能優(yōu)化、nginx Apache企業(yè)開發(fā)Tomcat集群部署、大數據Hadoop、HBase實時計算spark、storm、數據分析、分詞和權重等核心技術。
如何成為一名優(yōu)秀的建筑師?我用七張照片告訴你。
您可以先學習分布式鎖的實現https://pan.baidu.com/s/1y8rkldBEpkHXHS3GvJXGTg密碼:Umu3
在系統(tǒng)架構技術中,我們經常接觸到RPC(remoteprocedure call)技術。目前有很多RPC框架,Google的grpc近年來也非常流行。它基于http2.0。很多人不明白grpc為什么選擇http/2作為傳輸協議。
Grpc是由Google開發(fā)的高性能RPC框架開源。協議緩沖區(qū)是基于HTTP/2的數據傳輸和數據序列化框架。grpc的底層支持不同的協議,比如http2上的grpc和grpcweb。
其主要優(yōu)點如下:
基于HTTP/2標準設計,在移動端性能更好,節(jié)省空間;
數據交換格式為協議緩沖區(qū),獨立于語言和平臺,二進制,性能良好。
這里需要注意的是,http/2不等于http,它們之間有很大的區(qū)別。GPRC使用http/2協議的主要原因如下:
http/2更適合于移動客戶端和服務器之間的通信;
http/2具有報頭壓縮特性,減少了數據傳輸量和延遲;
http/2是通用的,不同語言之間的實現成本非常低。