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

PHP輕量級開源接口框架,rpc接口

【PHP輕量級開源接口框架,rpc接口】Python如何調用RPC接口?

PHP輕量級開源接口框架,rpc接口


Python調用RPC接口方法如下:1.RPC(Remote Procedure Call)遠程過程調用,要調用RPC接口,Python提供了一個框架grpc,這是google開源的庫 rpc相關文檔鏈接:https://grpc.io/docs/tutorials/basic/python.html 2. gRPC 的安裝$ pip install grpcio$ pip install protobuf$ pip install grpcio-tools3.實際使用:編寫 server 端代碼:編寫 client 端代碼:運行結果:先啟動 server,之后再執(zhí)行 clientclient客戶端控制臺如果打印的結果為:“received: HELLO,WORLD!”,證明 gRPC 接口定義成功以上就是Python如何調用RPC接口的方法,希望對你有幫助! 。
既然有http請求,為什么還要用rpc調用?
PHP輕量級開源接口框架,rpc接口


在程序開發(fā)中,我們經(jīng)常會調用第三方API,而這類API一般提供多種方式供我們調用,比如:基于HTTP協(xié)議的、還有RPC方式調用的,以致于很多人會有這種質疑:既然有了HTTP這種請求方式,為什么還有RPC的存在?HTTP和RPC是完全不同的概念在這里我們需要搞清楚一點的是,HTTP和RPC在概念上就是不同的,兩種是不能相提并論的 。
HTTP是超文本傳輸協(xié)議;RPC是指遠程過程調用,它是對不同系統(tǒng)間相互調用方式的一種描述,RPC不是協(xié)議也不是一種新技術,嚴格意義上應該稱它是一種解決方案(概念)或技術實現(xiàn)的框架 。RPC框架底層一般支持多種協(xié)議,比如:HTTP、TCP、自定協(xié)議等 。所以說RPC也是可以通過HTTP來實現(xiàn)的!RPC與HTTP調用的應用場景RPC框架提供的是面向服務的封裝,它針對服務的性能效率、可用性等都做了優(yōu)化(比如提供了:注冊中心、服務治理、負載均衡、二進制傳輸、熔斷、服務降級等功能),是一套完整的解決方案;而HTTP調用缺少這些高級特性,它只是簡單的數(shù)據(jù)通信,另外HTTP API受限于HTTP協(xié)議(要帶HTTP請求頭),傳輸效率及安全性不如RPC 。
為什么使用RPC而不是簡單的HTTP API?HTTP API一般在接口數(shù)量不多的情況下采用的,因為它使用起來簡單快捷,直接利用現(xiàn)成的HTTP協(xié)議就可以進行數(shù)據(jù)傳輸 。但對于一個大型項目,內(nèi)部模塊子系統(tǒng)眾多,接口也變得很多了,在這種情況下如果再使用一個個零散的HTTP API,維護成本極高 。所以RPC框架優(yōu)點就顯示出來了,比如說:支持長鏈接,減少了網(wǎng)絡開銷;擁有注冊中心,服務治理起來更方便;有監(jiān)控功能,易于定位問題;對調用方來說是無感知、統(tǒng)一化的 。
微服務調用為什么用RPC框架,http不更簡單嗎?
PHP輕量級開源接口框架,rpc接口


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

推薦閱讀