亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php-phprpc - 什么是rpc框架,及其作用,在php方向上的使用?

2020-03-22 18:46:09
字體:
來源:轉載
供稿:網友
看到了一些關于RPC的框架 比如 soap,yar,phprpc,thrift。對這些東西不怎么了解,有什么樣的作用

回復內容:

看到了一些關于RPC的框架 比如 soap,yar,phprpc,thrift。對這些東西不怎么了解,有什么樣的作用

回答第一個問題:什么是RPC框架? 如果用一句話概括RPC就是:遠程調用框架


那什么是“遠程調用”?

通常我們調用一個方法,譬如: localAdd(10, 20),localAdd方法的具體實現要么是用戶自己定義,要么存在于該語言的庫函數中,也就說在localAdd方法的代碼實現在本地,它是一個本地調用!

“遠程調用”意思就是:被調用方法的具體實現不在程序運行本地,而是在別的某個地方;

遠程調用原理

譬如 A調用B提供的remoteAdd方法:,

  1. 首先A與B之間建立一個TCP連接;

  2. 然后A把需要調用的方法名(這里是remoteAdd)以及方法參數(10, 20)序列化成字節流發送出去;

  3. B接受A發送過來的字節流,然后反序列化得到目標方法名,方法參數,接著執行相應的方法調用(可能是localAdd)并把結果30返回;

  4. A接受遠程調用結果

RPC框架無非就是把我剛才說的那些細節通通封裝起來,給用戶暴露簡單友好的API使用(ps:有些遠程調用選擇比較底層的socket協議,有些遠程調用選擇比較上層的HTTP協議);

遠程調用好處:
  • 解耦:當方法提供者需要對方法內實現修改時,調用者完全感知不到,不用做任何變更;這種方式在跨部門,跨公司合作的時候經常用到,并且方法的提供者我們通常稱為:服務的暴露方

至于soap,yar,phprpc,thrift這幾樣的東西,一個都沒用過,所以不好評價

關于比較經典和流行的RPC框架應該是facebook開源的thirft框架??梢詤⒖枷逻@篇博文
淺談Facebook的服務器架構

RPC(遠程過程調用)是什么

  • 簡單的說,RPC就是從一臺機器(客戶端)上通過參數傳遞的方式調用另一臺機器(服務器)上的一個函數或方法(可以統稱為服務)并得到返回的結果。
  • RPC 會隱藏底層的通訊細節(不需要直接處理Socket通訊或Http通訊)
  • RPC 是一個請求響應模型。客戶端發起請求,服務器返回響應(類似于Http的工作方式)
  • RPC 在使用形式上像調用本地函數(或方法)一樣去調用遠程的函數(或方法)。

遠程過程調用發展歷程

  • ONC RPC (開放網絡計算的遠程過程調用),OSF RPC(開放軟件基金會的遠程過程調用)
  • CORBA(Common Object Request Broker Architecture公共對象請求代理體系結構)
  • DCOM(分布式組件對象模型),COM+
  • Java RMI
  • .NET Remoting
  • XML-RPC,SOAP,Web Service
  • PHPRPC,Hessian,JSON-RPC
  • Microsoft WCF,WebAPI
  • ZeroC Ice,Thrift,GRPC
  • Hprose

早期的 RPC

  • 第一代 RPC(ONC RPC,OSF RPC)不支持對象的傳遞。
  • CORBA 太復雜,各種不同實現不兼容,一般程序員也玩不轉。
  • DCOM,COM+ 逃不出 Windows 的手掌心。
  • RMI 只能在 Java 里面玩。
  • .NET Remoting 只能在 .NET 平臺上玩。

XML-RPC,SOAP,WebService

  • 冗余數據太多,處理速度太慢。
  • RPC 風格的 Web Service 跨語言性不佳,而 Document 風格的 Web Service 又太過難用。
  • Web Service 沒有解決用戶的真正問題,只是把一個問題變成了另一個問題。
  • Web Service 的規范太過復雜,以至于在 .NET 和 Java 平臺以外沒有真正好用的實現,甚至沒有可用的實現。
  • 跨語言跨平臺只是 Web Service 的一個口號,雖然很多人迷信這一點,但事實上它并沒有真正實現。

PHPRPC

  • 基于 PHP 內置的序列化格式,在跨語言的類型映射上存在硬傷。
  • 通訊上依賴于 HTTP 協議,沒有其它底層通訊方式的選擇。
  • 內置的加密傳輸既是特點,也是缺點。
  • 雖然比基于 XML 的 RPC 速度快,但還不是足夠快。

Hessian

  • 二進制的數據格式完全不具有可讀性。
  • 官方只提供了兩個半語言的實現(Java,ActionScript 和不怎么完美的 Python 實現),其它語言的第三方實現良莠不齊。
  • 支持的語言不夠多,對 Web 前端的 JavaScript 完全無視。
  • 雖然是動態 RPC,但動態性仍然欠佳。
  • 雖然比基于 XML 的 RPC 速度快,但還不是足夠快。

JSON-RPC

  • JSON 具有文本可讀性,且比 XML 更簡潔。
  • JSON 受 JavaScript 語言子集的限制,可表示的數據類型不夠多。
  • JSON 格式無法表示數據內的自引用,互引用和循環引用。
  • 某些語言具有多種版本的實現,但在類型影射上沒有統一標準,存在兼容性問題。
  • JSON-RPC 雖然有規范,但是卻沒有統一的實現。在不同語言中的各自實現存在兼容性問題,無法真正互通。

Microsoft WCF,WebAPI

  • 它們是微軟對已有技術的一個 .NET 平臺上的統一封裝,是對 .NET Remoting、WebService 和基于 JSON 、XML 等數據格式的 REST 風格的服務等技術的一個整合。
  • 雖然號稱可以在 .NET 平臺以外來調用它的這些服務,但實際上跟在 .NET 平臺內調用完全是兩碼事。它沒有提供任何在其他平臺的語言中可以使用的任何工具。

ZeroC Ice,Thrift,GRPC

  • 初代 RPC 技術的跨語言html' target='_blank'>面向對象的回歸。
  • 仍然需要通過中間語言來編寫類型和接口定義。
  • 仍然需要用代碼生成器來將中間語言編寫的類型和接口定義翻譯成你所使用的編程語言的客戶端和服務器端的占位程序(stub)。
  • 你必須要基于生成的服務器代碼來單獨編寫服務,而不能將已有代碼直接作為服務發布。
  • 你必須要用生成的客戶端代碼來調用服務,而沒有其它更靈活的方式。
  • 如果你的中間代碼做了修改,以上所有步驟你都要至少重復一遍。

Hprose

  • 無侵入式設計,不需要單獨定義類型,不需要單獨編寫服務,已有代碼可以直接發布為服務。
  • 具有豐富的數據類型和完美的跨語言類型映射,支持自引用,互引用和循環引用數據。
  • 支持眾多傳輸方式,如 HTTP、TCP、Websocket 等。
  • 客戶端具有更靈活的調用方式,支持同步調用,異步調用,動態參數,可變參數,引用參數傳遞,多結果返回(Golang)等語言特征,Hprose 2.0 甚至支持推送。
  • 具有良好的可擴展性,可以通過過濾器和中間件實現加密、壓縮、緩存、代理等各種功能性擴展。
  • 兼容的無差別跨語言調用
  • 支持更多的常用語言和平臺
  • 支持瀏覽器端的跨域調用
  • 沒有中間語言,無需學習成本
  • 性能卓越,使用簡單

Web Service 里就會用到soap的方式啊。

RPC是Remote Procedure Call的縮寫

Procedure就是function的另類寫法,RPC就是在本地調用遠程服務器上的一個function,僅此而已。

RPC有多種協議。SOAP是HTTP+XML base的RPC protocol。Thrift是binary的RPC protocol。

RPC的主要目的是解決不同語言間互相調用的問題。一個足夠復雜的集群中,有的服務器跑PHP,有的服務器跑Python,有的服務器跑C++,互相之間怎么傳遞信息?這需要有一個約定:函數名有什么要求?函數參數支持什么類型?int類型的變量是32bit unsigned還是16bit signed?服務器和客戶端之間通訊的字節流是big endian還是little endian?這些約定就是所謂的RPC協議。

至于什么是RPC框架?這個真不知道。第一次聽說。

我也是醉了,這個和API有什么區別? API還可以更方便的做限制,RPC對于PHP意義不大啊

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美有码在线视频| 国产成人精品一区二区三区| 亚洲欧洲在线免费| 麻豆精品精华液| 国产亚洲日本欧美韩国| 91精品视频免费观看| 中文字幕在线观看亚洲| 亚洲成人三级在线| 丁香五六月婷婷久久激情| 国产精品91在线| 尤物精品国产第一福利三区| 成人性教育视频在线观看| 国产精品视频yy9099| 九九久久久久久久久激情| 久久福利视频网| 亚洲情综合五月天| 欧美成人合集magnet| 国产精品最新在线观看| 九九热最新视频//这里只有精品| 69av视频在线播放| 日韩一区二区av| 欧美不卡视频一区发布| 欧美一区二区大胆人体摄影专业网站| 国产精品人人做人人爽| 一级做a爰片久久毛片美女图片| 亚洲精品有码在线| 成人午夜黄色影院| 成人www视频在线观看| 91久久嫩草影院一区二区| 亚洲午夜未满十八勿入免费观看全集| 91精品国产九九九久久久亚洲| 精品日韩视频在线观看| 亚洲日本中文字幕免费在线不卡| 日韩av在线直播| 久久久精品久久久久| 2023亚洲男人天堂| 亚洲高清不卡av| 国产精品电影网| 77777少妇光屁股久久一区| 国产精品久久久精品| 日韩精品免费在线观看| 国产一区视频在线播放| 亚洲免费视频网站| 国产精品视频资源| 国产综合久久久久| 亚洲欧洲国产伦综合| 欧美丝袜第一区| 亚洲爱爱爱爱爱| 国产精品电影久久久久电影网| 不卡av电影在线观看| 日本免费在线精品| 97在线精品国自产拍中文| 欧美激情精品久久久久久黑人| 亚洲欧洲视频在线| 91精品久久久久久久久| 色偷偷噜噜噜亚洲男人的天堂| 欧美性生活大片免费观看网址| 国产最新精品视频| 日本一区二区三区四区视频| 亚洲美女动态图120秒| 全色精品综合影院| 91免费看国产| 久久国产精品久久久久| 国产成人一区三区| 国产一区二区三区免费视频| 一本久久综合亚洲鲁鲁| 97超碰蝌蚪网人人做人人爽| 欧美激情图片区| 欧美在线激情视频| 韩剧1988免费观看全集| 黑人与娇小精品av专区| 色久欧美在线视频观看| 国内精品国产三级国产在线专| 日韩一区视频在线| 久久精品视频中文字幕| 亚洲精品aⅴ中文字幕乱码| 国产亚洲精品久久久久久| 欧美色另类天堂2015| 久久久久久中文字幕| 国产精品极品尤物在线观看| 欧美成人精品三级在线观看| 久久久久中文字幕| 国产精品影院在线观看| 精品久久久免费| 色噜噜狠狠色综合网图区| 日韩精品在线视频观看| 国内自拍欧美激情| 久久人人爽人人| 日韩av在线高清| 日韩视频免费中文字幕| 青青久久av北条麻妃黑人| 78色国产精品| 国内精品久久久久久中文字幕| 亚洲人成电影网站色xx| 中文字幕日韩欧美| 国产午夜精品免费一区二区三区| 在线日韩精品视频| 欧美成人免费视频| 91av免费观看91av精品在线| 国产999在线观看| 国内精品久久久久伊人av| 日韩成人在线视频| 久久久久久午夜| 亚洲综合国产精品| 国产精品久久一区| 久久久免费精品| 日韩动漫免费观看电视剧高清| 国产一区玩具在线观看| 日韩欧美国产免费播放| 久久五月天综合| 精品无码久久久久久国产| 久久亚洲一区二区三区四区五区高| 精品国偷自产在线| 欧美日韩国产成人| 欧美视频二区36p| 久久中文字幕国产| 91久久精品国产91性色| 欧美日韩在线另类| 日韩人体视频一二区| 91免费精品国偷自产在线| 国内精品久久久久影院优| 日韩高清欧美高清| 在线国产精品播放| 久久久国产精品亚洲一区| 欧美日韩福利在线观看| 国产在线视频一区| 久久91亚洲精品中文字幕奶水| 亚洲石原莉奈一区二区在线观看| 日韩美女在线观看一区| 欧美日韩激情视频| 成人国内精品久久久久一区| 中文字幕精品一区久久久久| 亚洲精品一区久久久久久| 精品欧美一区二区三区| 欧美中文字幕精品| 欧美综合国产精品久久丁香| 国产精品爽黄69| 国模视频一区二区三区| 国内精品久久久久久影视8| 日韩国产高清污视频在线观看| 亚洲国产精品国自产拍av秋霞| 大荫蒂欧美视频另类xxxx| 国模视频一区二区三区| 久久国产精品偷| 91精品国产91久久久久久不卡| 麻豆成人在线看| 亚洲欧美综合精品久久成人| 精品五月天久久| 麻豆一区二区在线观看| 亚洲自拍在线观看| 精品一区二区三区四区在线| 日本一区二三区好的精华液| 国产亚洲精品久久久久久| 欧美成人性生活| 免费91麻豆精品国产自产在线观看| 午夜精品一区二区三区视频免费看| 青青久久av北条麻妃黑人| 久久久成人av| 欧美巨大黑人极品精男| 亚洲国产一区自拍| 日本国产一区二区三区| 韩国日本不卡在线| 日韩一区二区在线视频| 亚洲视频视频在线|