net分布式框架哪個好 微服務(wù)調(diào)用為啥用RPC框架,http不更簡單嗎?
微服務(wù)調(diào)用為啥用RPC框架,http不更簡單嗎?簡單一點,HTTP是協(xié)議,RPC是概念!RPC可以基于HTTP協(xié)議(feign)、TCP協(xié)議(netty)、RMI協(xié)議(soap)和web服務(wù)(XML-
微服務(wù)調(diào)用為啥用RPC框架,http不更簡單嗎?
簡單一點,HTTP是協(xié)議,RPC是概念!RPC可以基于HTTP協(xié)議(feign)、TCP協(xié)議(netty)、RMI協(xié)議(soap)和web服務(wù)(XML-RPC)框架實現(xiàn)。在傳輸過程中,由于序列化方法的不同,也出現(xiàn)了一些框架和協(xié)議,如Dubbo中的Dubbo協(xié)議、grpc protobuf序列化協(xié)議等。實際上,它們都是基于遠程調(diào)用的概念。什么是遠程呼叫?
關(guān)鍵是RPC是遠程調(diào)用。遠程調(diào)用是客戶端通過上述協(xié)議向服務(wù)器發(fā)送接口、參數(shù)、參數(shù)類型、方法、返回值、返回值類型等(稱為方法簽名),通知服務(wù)器要調(diào)用的接口方法。這個過程就是RPC的實現(xiàn)過程!HTTP和RPC是兩碼事
!在性能方面,HTTP本身是基于TCP協(xié)議的,屬于應(yīng)用層協(xié)議,所以HTTP協(xié)議本身在實現(xiàn)過程中會占用大量的資源(內(nèi)存、帶寬等)。在性能方面,它肯定不如直接通過TCP實現(xiàn)的RPC協(xié)議快。不管HTTP有多優(yōu)化,它絕對沒有TCP那么快!另一方面,TCP依賴于字節(jié)碼。目前常用的是將客戶端調(diào)用的接口信息以序列化的方式發(fā)送到服務(wù)器端。序列化框架包括許多內(nèi)容(Hession、protobuf、kryo等)。Kryo具有最高的序列化性能,protobuf具有序列化后最小的字節(jié)碼)。序列化后的字節(jié)碼越小,占用的帶寬越小,序列化時間越長,線程IO延遲越短,線程IO延遲越小。因此,在具體的應(yīng)用層,有很多技術(shù)可以討論。您可以根據(jù)自己的硬件能力選擇相應(yīng)的技術(shù)
!歡迎熱愛科技的人們來探索
Net Core已經(jīng)開源好幾年了, 為什么不像JVM那樣很多人研究和調(diào)優(yōu)其GC算法?
我們已經(jīng)推出了幾個。Net核心項目,基本上是docker。凈核心2/3。說實話。netcore的GC非常好?;旧希悴恍枰馢ava那樣做很多優(yōu)化。所以沒有多少研究是正常的。換句話說,如果一個GC需要做很多優(yōu)化,那么它肯定不是一個好的GC。當然,平時編程、常用的非托管對象處理等都必須掌握。
“.Net Core” 能令微軟的“.Net ”迎來轉(zhuǎn)機嗎?
。
你為什么這么說?
是的,它只能部署在Windows平臺上。老實說,它把自己限制在死亡的范圍內(nèi)。因為在互聯(lián)網(wǎng)環(huán)境中,真正選擇windows服務(wù)器的企業(yè)服務(wù)器并不多。net可以做什么,Java等都可以實現(xiàn),它們可以跨平臺。人們?yōu)槭裁匆x擇。網(wǎng)絡(luò)?
(盡管仍然存在兼容性問題),微軟已經(jīng)邁出了這一步,并開始擁抱開源,這是一個好現(xiàn)象。
。
現(xiàn)在。網(wǎng)芯還是個孩子,有很多不完善的地方,這就決定了它在這條路上還有很長的路要走。從客戶應(yīng)用的角度來看,是否存在一些問題。Net核心,百度和谷歌將無法找到解決方案。目前,使用的大型公司并不多。凈核心在中國。從這一點來看,學(xué)習成本、應(yīng)用成本和推廣成本都存在差異。網(wǎng)芯相當大。
以上是我的意見,如果有的話。網(wǎng)友有不同意見,請留言如下。