HTTP和RPC的優缺點

  在HTTP和RPC的選擇上,可能有些人是迷惑的,主要是由於,有些RPC框架配置複雜,若是走HTTP也能完成一樣的功能,那麼爲何要選擇RPC,而不是更容易上手的HTTP來實現了。
本文主要來闡述HTTP和RPC的異同,讓你們更容易根據本身的實際狀況選擇更適合的方案。json

  • 傳輸協議segmentfault

    • 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接口調用,第三方接口調用等。學習



歡迎訂閱「K叔區塊鏈」 - 專一於區塊鏈技術學習

博客地址: http://www.jouypub.com
簡書主頁: https://www.jianshu.com/u/756c9c8ae984
segmentfault主頁: https://segmentfault.com/blog/jouypub
騰訊雲主頁: https://cloud.tencent.com/developer/column/72548
相關文章
相關標籤/搜索