遠(yuǎn)程通信技術(shù)(RPC)概覽

廣義的遠(yuǎn)程通訊技術(shù)包括:RPC灵嫌,WebService鼻百,RMI,JMS,EJB荸频,JNDI

一、概念解釋

  • RPC:遠(yuǎn)程過程調(diào)用户辫,廣義的RPC和與MQ并列屬于系統(tǒng)間的交互方式脾猛,跨平臺,通過http通信贤姆,通信的過程相當(dāng)于http遠(yuǎn)程傳送參數(shù)(串行化技術(shù))榆苞,本質(zhì)上是一個請求相應(yīng)模型。特征為隱藏底層通信細(xì)節(jié)霞捡,不需要直接處理Socket通訊和Http通信

    • rpc的實(shí)現(xiàn):理論上來說WebService坐漏,gRPC,dubbo,微博Motan赊琳,thrift都是廣義RPC技術(shù)的實(shí)現(xiàn)街夭。
  • CORBA:面向?qū)ο蟮木幊腆w系規(guī)范,分布式系統(tǒng)躏筏,跨語言板丽,對標(biāo)RMI(競爭關(guān)系)。

    • CORBA的實(shí)現(xiàn):omniORB趁尼,TAO埃碱。
  • SOAP:簡單對象訪問協(xié)議,微軟聯(lián)合廠商對xml-rpc標(biāo)準(zhǔn)化乃正,soap協(xié)議就是聯(lián)合標(biāo)準(zhǔn)化的結(jié)果,而且微軟搶先完善了soap協(xié)議婶博,推出了webservice瓮具。對象訪問協(xié)議指的是使用XML描述web service的信息(URI/類/參數(shù)/返回值),理論上SOAP就是一段xml

  • WebService:屬于廣義rpc的一種(常見的廣義rpc實(shí)現(xiàn)還有xml-rpc和json-rpc)凡人,支持異構(gòu)系統(tǒng)間的交互名党, 支持不同語言的通信,使用http通信挠轴,通過serlvet提供XML格式的數(shù)據(jù)传睹,是SOAP協(xié)議的封裝,WSDL是它的描述方式岸晦。

    • 基于SOAP實(shí)現(xiàn)WebService:引入JAX-WS規(guī)范(java實(shí)現(xiàn)soap的一個規(guī)范欧啤,為了簡化基于soap的java開發(fā),使用jax-ws可以讓開發(fā)者不編寫任何生產(chǎn)和處理soap的代碼启上,jax-ws運(yùn)行時會將api的調(diào)用轉(zhuǎn)換為soap的消息)基于jax-ws的開發(fā)框架有ApacheAxis2和ApacheCXF(結(jié)合spring邢隧,是常用框架)
    • 基于REST的實(shí)現(xiàn)WebService:對應(yīng)有JAX-RS規(guī)范,基于jax-rs的框架有ApacheWink冈在,Jersey倒慧,Spring REST
  • WSDL:webservice描述語言,描述SOAP協(xié)議的包券,也是段XML

  • RMI:遠(yuǎn)程調(diào)用對象纫谅,其實(shí)是java實(shí)現(xiàn)了RPC的一組接口

    • 實(shí)現(xiàn):沒有框架,本身就是這種技術(shù)的實(shí)現(xiàn)
  • JMS:MQ

  • EJB:大型分布式溅固,rmi-iiop協(xié)議

    • 直接對標(biāo)spring體系:因?yàn)镋JB是官方指定的標(biāo)準(zhǔn)付秕,各個容器廠商都會不予余力的開發(fā)新版本來支持EJB標(biāo)準(zhǔn),因此符合EJB的規(guī)范的容器侍郭,一般能適應(yīng)企業(yè)的方方面面盹牧,而開源的spring結(jié)構(gòu)體系就是個不統(tǒng)一的標(biāo)準(zhǔn)俩垃,你不能將spring+structs的架構(gòu)遷移到spring+WebWork励幼,更不能輕易將Spring+hibernate遷移到Spring+iBatis汰寓,但是因?yàn)镋JB的標(biāo)準(zhǔn)問題,可以在WebSphere苹粟,WebLogic和JBOSS之間切換有滑。因?yàn)镋JB的過于重量級和難以使用,相當(dāng)于民間開發(fā)了一套技術(shù)(spring)來覆蓋了官方的EJB所提供的技術(shù)嵌削。

二毛好、廣義RPC發(fā)展歷程

  • 廣義RPC的技術(shù)發(fā)展歷程
    以下按照時間順序排序
    • CORBA
    • DCOM,COM+
    • JAVA RMI
    • .net remoting
    • XML-RPC苛秕,SOAP肌访,WebService(冗余數(shù)據(jù)多,處理速度慢)
    • Hessian(二進(jìn)制艇劫,官方只提供了java的實(shí)現(xiàn))
    • JSON-RPC(沒有統(tǒng)一實(shí)現(xiàn))
    • Microsoft WCF吼驶,WebAPI(微軟技術(shù)整合)
    • ZeroC Ice,Thrift店煞,GRPC

下圖為技術(shù)發(fā)展簡圖:


下載.png

三蟹演、狹義RPC技術(shù)框架

由于目前跨內(nèi)存調(diào)用的普遍性,RPC往往代稱更加具體的基于底層協(xié)議二進(jìn)制流的RPC框架,與WebService最大的不同就是: 狹義的RPC基于二進(jìn)制流的序列化和反序列化,故不能夠提供跨語言的服務(wù),但是比基于文本解析的WebService更加高效。

狹義RPC框架一般需要高性能的網(wǎng)絡(luò)框架顷蟀,如Netty酒请,Mina,高性能的序列化反序列化框架鸣个,尋址方式羞反,如果是帶會話的RPC,還要有會話和狀態(tài)保持功能囤萤。

當(dāng)下XML-RPC昼窗,SOAP,WebService技術(shù)的缺陷:

  • 冗余數(shù)據(jù)太多阁将,處理速度太慢膏秫。
  • RPC 風(fēng)格的 Web Service 跨語言性不佳,而 Document 風(fēng)格的 Web Service 又太過難用做盅。
  • Web Service 沒有解決用戶的真正問題缤削,只是把一個問題變成了另一個問題。
  • Web Service 的規(guī)范太過復(fù)雜吹榴,以至于在 .NET 和 Java 平臺以外沒有真正好用的實(shí)現(xiàn)亭敢,甚至沒有可用的實(shí)現(xiàn)。
  • 跨語言跨平臺只是 Web Service 的一個口號图筹,雖然很多人迷信這一點(diǎn)帅刀,但事實(shí)上它并沒有真正實(shí)現(xiàn)让腹。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市扣溺,隨后出現(xiàn)的幾起案子骇窍,更是在濱河造成了極大的恐慌,老刑警劉巖锥余,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腹纳,死亡現(xiàn)場離奇詭異,居然都是意外死亡驱犹,警方通過查閱死者的電腦和手機(jī)嘲恍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雄驹,“玉大人佃牛,你說我怎么就攤上這事∫接撸” “怎么了俘侠?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長彬向。 經(jīng)常有香客問我兼贡,道長,這世上最難降的妖魔是什么娃胆? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任遍希,我火速辦了婚禮里烦,結(jié)果婚禮上胁黑,老公的妹妹穿的比我還像新娘丧蘸。我一直安慰自己力喷,他們只是感情好贝咙,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布窟她。 她就那樣靜靜地躺著震糖,像睡著了一般徙缴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上穿剖,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天,我揣著相機(jī)與錄音贬芥,去河邊找鬼。 笑死威沫,一個胖子當(dāng)著我的面吹牛棒掠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播雾袱,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼妻枕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蝌数?” 一聲冷哼從身側(cè)響起顶伞,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锨咙,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钮孵,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年毡证,在試婚紗的時候發(fā)現(xiàn)自己被綠了丐箩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屎勘。...
    茶點(diǎn)故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡喜喂,死狀恐怖照弥,靈堂內(nèi)的尸體忽然破棺而出悔常,到底是詐尸還是另有隱情机打,我是刑警寧澤,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布塞俱,位于F島的核電站姐帚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏障涯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一膳汪、第九天 我趴在偏房一處隱蔽的房頂上張望唯蝶。 院中可真熱鬧,春花似錦遗嗽、人聲如沸粘我。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽征字。三九已至,卻和暖如春娇豫,著一層夾襖步出監(jiān)牢的瞬間匙姜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工冯痢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留氮昧,地道東北人。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓浦楣,卻偏偏與公主長得像袖肥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子振劳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,566評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 在分布式服務(wù)框架中椎组,一個最基礎(chǔ)的問題就是遠(yuǎn)程服務(wù)是怎么通訊的,在Java領(lǐng)域中有很多可實(shí)現(xiàn)遠(yuǎn)程通訊的技術(shù)历恐,例如:R...
    wyatt_plus閱讀 821評論 0 4
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理寸癌,服務(wù)發(fā)現(xiàn)专筷,斷路器,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 歲月女孩----1 我叫林然灵份,今年14歲仁堪。讀初一,嘴巴有點(diǎn)毒舌填渠,對別人的弱點(diǎn)總是逮住不放弦聂,會動腦筋,愛耍一些小聰明...
    耳谷閱讀 201評論 0 0
  • MIAMI — The Heat’s current roster is made up of 19 player...
    prudenceli閱讀 119評論 0 0
  • 而此時氛什,任然卻衣衫不整的走在人來人往的人行路上莺葫,她的頭發(fā)看上去像一團(tuán)雜草一樣凌亂的披在肩上,全是褶皺的襯衫被胡...
    biubiubiu糖閱讀 242評論 0 2