rpc與接口調(diào)用區(qū)別?
1.本質(zhì)區(qū)別 http是協(xié)議,rpc是方法,rpc的實(shí)現(xiàn)可能也會(huì)用到http http在應(yīng)用層,rpc在傳輸層(長(zhǎng)連接,少了三次握手,不過http2.0也可以鏈接復(fù)用了) http中所使用的報(bào)文中有效字節(jié)數(shù)僅僅占約 30%,也就是70%的時(shí)間用于傳輸元數(shù)據(jù)廢編碼。當(dāng)然實(shí)際情況下報(bào)文內(nèi)容可能會(huì)比這個(gè)長(zhǎng),但是報(bào)頭所占的比例也是非??捎^的。而rpc僅通過序列化發(fā)送有效數(shù)據(jù),省去了很多無效的數(shù)據(jù),提高傳輸效率。 http需要可讀性強(qiáng),包括輸入、輸出,解析等。rpc就像調(diào)用方法一樣調(diào)用,很簡(jiǎn)單。
2.
其他區(qū)別 rpc一般都是和服務(wù)相關(guān)的 簡(jiǎn)單來說成熟的rpc庫(kù)相對(duì)http容器,更多的是封裝了“服務(wù)發(fā)現(xiàn)”,"負(fù)載均衡",“熔斷降級(jí)”一類面向服務(wù)的高級(jí)特性。可以這么理解,rpc框架是面向服務(wù)的更高級(jí)的封裝。如果把一個(gè)http servlet容器上封裝一層服務(wù)發(fā)現(xiàn)和函數(shù)代理調(diào)用,那它就已經(jīng)可以做一個(gè)rpc框架了。