RPC接口简介「建议收藏」(一文带你搞懂RPC)
生活随笔
收集整理的這篇文章主要介紹了
RPC接口简介「建议收藏」(一文带你搞懂RPC)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
什么是RPC
RPC(Remote Procedure Call Protocol)遠程過程調用協(xié)議。一個通俗的描述是:客戶端在不知道調用細節(jié)的情況下,調用存在于遠程計算機上的某個對象,就像調用本地應用程序中的對象一樣。比較正式的描述是:一種通過網(wǎng)絡從遠程計算機程序上請求服務,而不需要了解底層網(wǎng)絡技術的協(xié)議。
RPC的特點:
- RPC是協(xié)議。只是協(xié)議,而非實現(xiàn)。RPC實現(xiàn)包括:Dubbo、Thrift、GRPC、Hetty等。
- 網(wǎng)絡協(xié)議和網(wǎng)絡IO模型對其透明。RPC的客戶端認為自己是在調用本地對象,因此其對使用的網(wǎng)絡協(xié)議(HTTP協(xié)議等)以及網(wǎng)絡IO模型,是不關心的。
- 信息格式對其透明。調用方法是需要傳遞參數(shù)的,對于遠程調用來說,傳遞過程中參數(shù)的信息格式是怎樣構成,以及提供者如何使用這些參數(shù),都是不用關心的。
- 有跨語言能力。因為調用方實際上也不清楚遠程服務器的應用程序是使用什么語言運行的。那么對于調用方來說,無論服務器方使用的是什么語言,本次調用都應該成功,并且返回值也應該按照調用方程序語言所能理解的形式進行描述。
常用的RPC框架:
- Thrift:thrift是一個軟件框架,用來進行可擴展且跨語言的服務的開發(fā),包括 C++, Java, Python等多種編程語言。
- Dubbo:Dubbo是一個分布式服務框架,以及SOA治理方案。其功能主要包括:高性能NIO通訊及多協(xié)議集成,服務動態(tài)尋址與路由,軟負載均衡與容錯,依賴分析與降級等。
- Spring Cloud:提供了搭建分布式系統(tǒng)及微服務常用的工具,滿足了構建微服務所需的所有解決方案。
- gRPC: 一開始由 google 開發(fā),是一款語言中立、平臺中立、開源的遠程過程調用(RPC)系統(tǒng)。
RPC接口與HTTP對比
- 傳輸協(xié)議。RPC:可以基于TCP協(xié)議,也可以基于HTTP協(xié)議;HTTP:基于HTTP協(xié)議
- 傳輸效率。RPC:使用自定義的TCP協(xié)議,可以讓請求報文體積更小,或者使用HTTP2協(xié)議,也可以很好的減少報文的體積,提高傳輸效率;HTTP:如果是基于HTTP1.1的協(xié)議,請求中會包含很多無用的內容,如果是基于HTTP2.0,那么簡單的封裝下是可以作為一個RPC來使用的。
- 性能消耗。RPC:可以基于thrift實現(xiàn)高效的二進制傳輸;HTTP:大部分是通過json來實現(xiàn)的,字節(jié)大小和序列化耗時都比thrift要更消耗性能。
- 負載均衡。RPC:基本都自帶了負載均衡策略;HTTP:需要配置Nginx,HAProxy來實現(xiàn)。
- 服務治理。RPC:能做到自動通知,不影響上游;HTTP:需要事先通知,修改Nginx/HAProxy配置。
https://cloud.tencent.com/developer/article/1353110
https://blog.csdn.net/k_x_sh/article/details/88837410
RPC調用過程
https://www.cnblogs.com/FG123/p/10261676.html
總結
以上是生活随笔為你收集整理的RPC接口简介「建议收藏」(一文带你搞懂RPC)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无线充电原理与QI协议详解[通俗易懂](
- 下一篇: CPU指令集——AVX2