資料內(nèi)容:
什么是RPC
在分布式計(jì)算,遠(yuǎn)程過程調(diào)?(英語:Remote Procedure Call,縮寫為 RPC)是?個(gè)計(jì)算機(jī)通信協(xié)
議。該協(xié)議允許運(yùn)?于?臺(tái)計(jì)算機(jī)的程序調(diào)?另?個(gè)地址空間(通常為?個(gè)開放?絡(luò)的?臺(tái)計(jì)算機(jī))的
?程序,?程序員就像調(diào)?本地程序?樣,?需額外地為這個(gè)交互作?編程(?需關(guān)注細(xì)節(jié))。RPC是
?種服務(wù)器-客戶端(Client/Server)模式,經(jīng)典實(shí)現(xiàn)是?個(gè)通過發(fā)送請求-接受回應(yīng)進(jìn)?信息交互的
系統(tǒng)。
如果涉及的軟件采??向?qū)ο缶幊?,那么遠(yuǎn)程過程調(diào)?亦可稱作遠(yuǎn)程調(diào)?或遠(yuǎn)程?法調(diào)?,例:Java
RMI。
所以,對于Java程序員??,RPC就是遠(yuǎn)程?法調(diào)?。
遠(yuǎn)程?法調(diào)?和本地?法調(diào)?是相對的兩個(gè)概念,本地?法調(diào)?指的是進(jìn)程內(nèi)部的?法調(diào)?,?遠(yuǎn)程?法
調(diào)?指的是兩個(gè)進(jìn)程內(nèi)的?法相互調(diào)?。
如果實(shí)現(xiàn)遠(yuǎn)程?法調(diào)?,基本的就是通過?絡(luò),通過傳輸數(shù)據(jù)來進(jìn)?調(diào)?。
所以就有了:
1. RPC over Http:基于Http協(xié)議來傳輸數(shù)據(jù)
2. PRC over Tcp:基于Tcp協(xié)議來傳輸數(shù)據(jù)
對于所傳輸?shù)臄?shù)據(jù),可以交由RPC的雙?來協(xié)商定義,但基本都會(huì)包括:
1. 調(diào)?的是哪個(gè)類或接?
2. 調(diào)?的是哪個(gè)?法,?法名和?法參數(shù)類型(考慮?法 重載)
3. 調(diào)??法的?參
所以,我們其實(shí)可以看到RPC的?定義性是很?的,各個(gè)公司內(nèi)部都可以實(shí)現(xiàn)??的?套R(shí)PC框架,?
Dubbo就是阿?所開源出來的?套R(shí)PC框架。
什么是Dubbo
官?地址:http://dubbo.apache.org/zh/
?前,官?上是這么介紹的:Apache Dubbo 是?款?性能、輕量級的開源 Java 服務(wù)框架
在?個(gè)?前,官?的介紹是:Apache Dubbo 是?款?性能、輕量級的開源 Java RPC框架
為什么會(huì)將RPC改為服務(wù)?
Dubbo?開始的定位就是RPC,專注于兩個(gè)服務(wù)之間的調(diào)?。但隨著微服務(wù)的盛?,除開服務(wù)調(diào)?之外,
Dubbo也在逐步的涉獵服務(wù)治理、服務(wù)監(jiān)控、服務(wù)?關(guān)等等,所以現(xiàn)在的Dubbo?標(biāo)已經(jīng)不?是RPC框架
了,?是和Spring Cloud類似想成為了?個(gè)服務(wù)框架。
?程序,?程序員就像調(diào)?本地程序?樣,?需額外地為這個(gè)交互作?編程(?需關(guān)注細(xì)節(jié))。RPC是
?種服務(wù)器-客戶端(Client/Server)模式,經(jīng)典實(shí)現(xiàn)是?個(gè)通過發(fā)送請求-接受回應(yīng)進(jìn)?信息交互的
系統(tǒng)。
如果涉及的軟件采??向?qū)ο缶幊?,那么遠(yuǎn)程過程調(diào)?亦可稱作遠(yuǎn)程調(diào)?或遠(yuǎn)程?法調(diào)?,例:Java
RMI。