什么是RPC協(xié)議?
RPC是一種遠(yuǎn)程過(guò)程調(diào)用的協(xié)議,使用這種協(xié)議向另一臺(tái)計(jì)算機(jī)上的程序請(qǐng)求服務(wù),不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議。
在 RPC 中,發(fā)出請(qǐng)求的程序是客戶程序,而提供服務(wù)的程序是服務(wù)器。
?
HTTP是一種超文本傳輸協(xié)議。是WWW瀏覽器和WWW服務(wù)器之間的應(yīng)用層通訊協(xié)議。
?
RPC協(xié)議與HTTP協(xié)議的區(qū)別
1、RPC是一種API,HTTP是一種無(wú)狀態(tài)的網(wǎng)絡(luò)協(xié)議。RPC可以基于HTTP協(xié)議實(shí)現(xiàn),也可以直接在TCP協(xié)議上實(shí)現(xiàn)。
2、RPC主要是用在大型網(wǎng)站里面,因?yàn)榇笮途W(wǎng)站里面系統(tǒng)繁多,業(yè)務(wù)線復(fù)雜,而且效率優(yōu)勢(shì)非常重要的一塊,這個(gè)時(shí)候RPC的優(yōu)勢(shì)就比較明顯了。
HTTP主要是用在中小型企業(yè)里面,業(yè)務(wù)線沒(méi)那么繁多的情況下。
3、HTTP開(kāi)發(fā)方便簡(jiǎn)單、直接。開(kāi)發(fā)一個(gè)完善的RPC框架難度比較大。
4、HTTP發(fā)明的初衷是為了傳送超文本的資源,協(xié)議設(shè)計(jì)的比較復(fù)雜,參數(shù)傳遞的方式效率也不高。開(kāi)源的RPC框架針對(duì)遠(yuǎn)程調(diào)用協(xié)議上的效率會(huì)比HTTP快很多。
5、HTTP需要事先通知,修改Nginx/HAProxy配置。RPC能做到自動(dòng)通知,不影響上游。
6、HTTP大部分是通過(guò)Json來(lái)實(shí)現(xiàn)的,字節(jié)大小和序列化耗時(shí)都比Thrift要更消耗性能。RPC,可以基于Thrift實(shí)現(xiàn)高效的二進(jìn)制傳輸。
?
SEO網(wǎng)站需要選擇怎么樣的的框架,需要多方面的評(píng)估,再對(duì)兩種開(kāi)發(fā)框架進(jìn)行比較,哪種最適合。不要為了使用RPC而每個(gè)項(xiàng)目都用RPC,而是要因地制宜,具體情況具體分析。
閱讀本文的人還可以閱讀: