面試:請說一下rpc和http的區(qū)別?

一、區(qū)別:
? ? 1、傳輸協(xié)議
????????RPC,可以基于TCP協(xié)議,也可以基于HTTP協(xié)議
????????HTTP,基于HTTP協(xié)議
??? 2、傳輸效率
????????RPC,使?用?自定義的TCP協(xié)議,可以讓請求報?文體積更更?小,或者使?用HTTP2協(xié)議,也可以很好的減少報?文的體積,提?高傳輸效率
??????? HTTP,如果是基于HTTP1.1的協(xié)議,請求中會包含很多?無?用的內(nèi)容,如果是基于HTTP2.0,那么簡單的封裝以下是可以作為?一個RPC來使?用的,這時標準RPC框架更更多的是服務治理理
? ? 3、性能消耗,主要在于序列列化和反序列列化的耗時
????????RPC,可以基于thrift實現(xiàn)?高效的?二進制傳輸
????????HTTP,?大部分是通過json來實現(xiàn)的,字節(jié)?大?小和序列列化耗時都?比thrift要更更消耗性能
? ? 4、負載均衡
????????RPC,基本都?自帶了了負載均衡策略略
????????HTTP,需要配置Nginx,HAProxy來實現(xiàn)
??? 5、服務治理(下游服務新增,重啟,下線時如何不不影響上游調(diào)?用者)
????????RPC,能做到?自動通知,不不影響上游?
????????HTTP,需要事先通知,修改Nginx/HAProxy配置
二、總結(jié):
RPC主要?用于公司內(nèi)部的服務調(diào)?用,性能消耗低,傳輸效率?高,服務治理理?方便便。HTTP主要?用于對外的異構(gòu)環(huán)境,瀏覽器?接?口調(diào)?用,APP接?口調(diào)?用,第三?方接?口調(diào)?用等。
推薦閱讀:
完全整理 | 365篇高質(zhì)技術(shù)文章目錄整理
專注服務器后臺技術(shù)棧知識總結(jié)分享
歡迎關(guān)注交流共同進步
