国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

RPC框架是啥?

didikee / 1979人閱讀

摘要:知乎的點贊,應該還是可以參考的。除了網絡通信,還需要有高效的序列化框架,以及一種尋址方式,如果是帶會話狀態的調用,還需要有會話的狀態保持的功能。一般來說,框架實現的架構原理都是類似的。服務端響應主要是服務端業務邏輯實現。

本博客 貓叔的博客,轉載請申明出處

在我剛剛了解分布式的時候,經常對RPC和分布式有些混淆,甚至一直以為兩者對等,所以我們先看看他們有什么區別

RPC實現了服務消費調用方Client與服務提供實現方Server之間的點對點調用流程,即包括了stub、通信、數據的序列化/反序列化。且Client與Server一般采用直連的調用方式。

而分布式服務框架,除了包括RPC的特性,還包括多臺Server提供服務的負載均衡、策略及實現,服務的注冊、發布與引入,以及服務的高可用策略、服務治理等等。

那么RPC是什么呢?

百度百科是這樣表示的:

RPC(Remote Procedure Call)—遠程過程調用,它是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。RPC協議假定某些傳輸協議的存在,如TCP或UDP,為通信程序之間攜帶信息數據。在OSI網絡通信模型中,RPC跨越了傳輸層和應用層。RPC使得開發包括網絡分布式多程序在內的應用程序更加容易。

它甚至給出了工作原理,這一點很驚喜。

1.調用客戶端句柄;執行傳送參數

2.調用本地系統內核發送網絡消息

3.消息傳送到遠程主機

4.服務器句柄得到消息并取得參數

5.執行遠程過程

6.執行的過程將結果返回服務器句柄

7.服務器句柄返回結果,調用遠程系統內核

8.消息傳回本地主機

9.客戶句柄由內核接收消息

10.客戶接收句柄返回的數據

我喜歡搜查更多的信息資料,所以我又找到了知乎上的回答。

知乎1.7k的點贊,應該還是可以參考的。

恰如回答提到的,RPC是指遠程過程調用,也就是說兩臺服務器A,B,一個應用部署在A服務器上,想要調用B服務器上應用提供的函數/方法,由于不在一個內存空間,不能直接調用,需要通過網絡來表達調用的語義和傳達調用的數據。

至于為什么使用RPC?答主也提到,無法在一個進程內,甚至一個計算機內通過本地調用的方式完成的需求,比如不同系統間的通訊,甚至不同組織間的通訊。

這里再說一下關于Netty,Netty框架不局限于RPC,更多的是作為一種網絡協議的實現框架,比如HTTP,由于RPC需要高效的網絡通信,就可以選擇Netty作為基礎。除了網絡通信,RPC還需要有高效的序列化框架,以及一種尋址方式,如果是帶會話(狀態)的RPC調用,還需要有會話的狀態保持的功能。

好了,讓我們再來整理一下,什么是RPC

RPC(遠程過程調用)一般用來實現部署在不同機器上的系統之間的方法調用,使得程序能夠像訪問本地系統資源一樣,通過網絡傳輸去訪問遠端系統資源。一般來說,RPC框架實現的架構原理都是類似的。

可以這樣說,

客戶端調用:負責發起RPC調用,為調用方用戶提供使用API。

服務端響應:主要是服務端業務邏輯實現。

序列化/反序列化:負責對RPC調用通過網絡傳輸的內容進行序列化與反序列化,不同的RPC框架有不同的實現機制。一般分為文本(XML、JSON)與二進制(Java原生的、Hessian、protobuf、Thrift、Avro、Kryo、MessagePack),需要注意的是,不同的序列化方式在可讀性、碼流大小、支持的數據類型及性能等方面都存在較大差異,我們可以根據需要自行選擇。

Stub:我們看成代理對象,它會屏蔽RPC調用過程中的復雜的網絡處理邏輯,使其透明簡單,且能夠保持與本地調用一樣的代碼風格。

通信傳輸:即RPC的底層通信傳輸模塊,一般通過Socket在客戶端與服務端之間傳遞請求與應答消息。

公眾號:Java貓說

學習交流群:728698035

現架構設計(碼農)兼創業技術顧問,不羈平庸,熱愛開源,雜談程序人生與不定期干貨。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74210.html

相關文章

  • RPC框架是啥之Apache CXF一款WebService RPC框架入門教程

    摘要:支持相關規范和標準,包括同上。支持多種傳輸協議和協議綁定數據綁定。構建端還有其服務實現,接口使用注解,標明是一個遠程服務接口。然后編寫一個的啟動程序,并運行,我想你會成功的因為我看到了下圖是一種跨平臺的技術協議。 本博客 貓叔的博客,轉載請申明出處 學習系列 RPC框架是啥? RPC框架是啥之Java自帶RPC實現,RMI框架入門 Apache CXF一款WebService RP...

    SolomonXie 評論0 收藏0
  • RPC框架是啥?

    摘要:知乎的點贊,應該還是可以參考的。除了網絡通信,還需要有高效的序列化框架,以及一種尋址方式,如果是帶會話狀態的調用,還需要有會話的狀態保持的功能。一般來說,框架實現的架構原理都是類似的。服務端響應主要是服務端業務邏輯實現。 本博客 貓叔的博客,轉載請申明出處 在我剛剛了解分布式的時候,經常對RPC和分布式有些混淆,甚至一直以為兩者對等,所以我們先看看他們有什么區別? RPC實現了服務消費...

    xietao3 評論0 收藏0
  • RPC框架是啥之Java自帶RPC實現,RMI框架入門

    摘要:讓我們優先來實現一個的案例吧。為了防止被防火墻攔截,需要強制制定的通信端口,一般通過自定義一個類來實現。完美支持語言所獨有的特性,不支持其他語言。使用了原生序列化,所有序列化對象必須實現接口。 本博客 貓叔的博客,轉載請申明出處 學習系列 RPC框架是啥? Java自帶RPC實現,RMI框架入門 首先RMI(Remote Method Invocation)是Java特有的一種RPC實...

    ZHAO_ 評論0 收藏0
  • 網絡協議 21 - RPC 協議(中)- 基于 JSON 的 RESTful 接口協議

    摘要:服務發現問題對于來講,我們已經解決了傳輸協議的問題基于,協議約定問題基于,最后要解決的是服務發現問題。另外一方是服務消費方,向獲取服務提供方的注冊信息。 ????上一節我們了解了基于 XML 的 SOAP 協議,SOAP 的 S 是啥意思來著?是 Simple,但是好像一點兒都不簡單啊! 傳輸協議問題 ????對于 SOAP 來講,比如我創建一個訂單,用 POST,在 XML 里面寫明...

    K_B_Z 評論0 收藏0
  • 網絡協議 21 - RPC 協議(中)- 基于 JSON 的 RESTful 接口協議

    摘要:服務發現問題對于來講,我們已經解決了傳輸協議的問題基于,協議約定問題基于,最后要解決的是服務發現問題。另外一方是服務消費方,向獲取服務提供方的注冊信息。 ????上一節我們了解了基于 XML 的 SOAP 協議,SOAP 的 S 是啥意思來著?是 Simple,但是好像一點兒都不簡單?。?傳輸協議問題 ????對于 SOAP 來講,比如我創建一個訂單,用 POST,在 XML 里面寫明...

    Paul_King 評論0 收藏0

發表評論

0條評論

didikee

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<