HTTP和RPC的優缺點
在HTTP和RPC的選擇上,可能有些人是迷惑的,主要是因為,有些RPC框架配置複雜,如果走HTTP也能完成同樣的功能,那麼為什麼要選擇RPC,而不是更容易上手的HTTP來實現了。
本文主要來闡述HTTP和RPC的異同,讓大家更容易根據自己的實際情況選擇更適合的方案。
- 傳輸協議
- RPC,可以基於TCP協議,也可以基於HTTP協議
- HTTP,基於HTTP協議
-
傳輸效率
- RPC,使用自定義的TCP協議,可以讓請求報文體積更小,或者使用HTTP2協議,也可以很好的減少報文的體積,提高傳輸效率
- HTTP,如果是基於HTTP1.1的協議,請求中會包含很多無用的內容,如果是基於HTTP2.0,那麼簡單的封裝以下是可以作為一個RPC來使用的,這時標準RPC框架更多的是服務治理
-
效能消耗,主要在於序列化和反序列化的耗時
- RPC,可以基於thrift實現高效的二進位制傳輸
- HTTP,大部分是通過json來實現的,位元組大小和序列化耗時都比thrift要更消耗效能
-
負載均衡
- RPC,基本都自帶了負載均衡策略
- HTTP,需要配置Nginx,HAProxy來實現
-
服務治理(下游服務新增,重啟,下線時如何不影響上游呼叫者)
- RPC,能做到自動通知,不影響上游
- HTTP,需要事先通知,修改Nginx/HAProxy配置
總結:
RPC主要用於公司內部的服務呼叫,效能消耗低,傳輸效率高,服務治理方便。HTTP主要用於對外的異構環境,瀏覽器介面呼叫,APP介面呼叫,第三方介面呼叫等。
相關文章
- HTTP1.1 優缺點HTTP
- 聊聊HTTP的缺點HTTP
- mysql和Oracle的特點,優缺點MySqlOracle
- 執行緒和程式的優缺點執行緒
- Java單例模式:缺點和優點Java單例模式
- 資料庫索引的作用和優點缺點資料庫索引
- Docker的優缺點Docker
- 和程式設計師約會的優點和缺點程式設計師
- mixins和元件的區別和優缺點元件
- 面試常問的http的缺點面試HTTP
- rem佈局原理和優缺點REM
- svn和git版本管理優缺點Git
- SQL、NoSQL和NewSQL的優缺點比較SQL
- TCP和UDP的優缺點及區別TCPUDP
- RabbitMQ優缺點MQ
- MySQL索引的優缺點MySql索引
- Socket 與 Http區別 優缺點及應用場景HTTP
- 節點快取的優缺點快取
- MyBatis的優缺點以及特點MyBatis
- MySQL垂直拆分和水平拆分的優缺點和共同點總結MySql
- ERP系統有哪些優點和缺點?
- 事件委託優缺點和實現事件
- Nginx/Tomcat/Apache的優缺點和區別NginxTomcatApache
- JavaScript繼承的多種方式和優缺點JavaScript繼承
- CSS如何清除浮動的方法和優缺點CSS
- kafka的優缺點都有那些Kafka
- 關於 Cookie的優缺點Cookie
- Serverless架構的優缺點Server架構
- 使用css框架的優缺點CSS框架
- 淺談Ajax的優缺點
- 四大主流PHP框架的優點和缺點總結PHP框架
- 幾種主流程式語言的優點和缺點
- 第二次作業:Github的優點和缺點Github
- HTTPS 優點與缺點HTTP
- 自學IT和接受IT培訓兩者的優缺點分析
- 細數獨享IP和共享IP的優缺點
- CRM系統本地部署和雲部署的優缺點
- 【Java面試】RDB 和 AOF 的實現原理、優缺點Java面試