SOA、Rest、Soap、RPC概念理解與區分

SOA

  • 面向服務架構。
  • 是一種軟件設計模式,主要應用於不同應用組件之間通過某種協議來互操作。
  • 因爲SOA不依賴於任何技術,因此SOAP、RPC、REST是對SOA的不同實現。

SOAP

  • 簡單對象訪問協議,是一種輕量的、簡單的、基於XML的協議
  • 可在任何傳輸協議(諸如 TCP、HTTP、SMTP,甚至是 MSMQ)上使用
  • 其中,SOAP廣泛使用的是基於HTTP和xml協議的實現(SOAP=RPC+HTTP+XML),也就是大家常提的Web Service使用的通信協議

REST

  • 表徵狀態轉移。採用Web 服務使用標準的 HTTP 方法 (GET/PUT/POST/DELETE) 將所有 Web 系統的服務抽象爲資源。
  • 目前較爲流行的一種組件通信方式。在微服務中有較多使用
  • REST不是一種協議,它是一種架構, 一種 Web Service 能夠如果滿足 REST 的幾個條件, 通常就稱這個系統是 Restful的

RPC

  • 遠程方法調用,就是像調用本地方法一樣調用遠程方法
  • dubbo就是一種RPC框架。他的通訊協議是RPC協議
  • 4種典型RPC遠程調用框架:RMI、Hessian、thrift、dubbo
  • Spring Cloud也是一種RPC框架,但是區別是它使用的是http協議(要區分應用層協議和傳輸協議)的傳輸,整體技術和普通RPC如dubbo[使用TCP協議]/thrift有很大區別

微服務和SOA的區別

  • 微服務是SOA架構演進的結果。
  • 兩者說到底都是對外提供接口的一種架構設計方式,隨着互聯網的發展,複雜的平臺、業務的出現,導致SOA架構向更細粒度、更通過化程度發展,就成了所謂的微服務了。
  • 兩者說到底都是對外提供接口的一種架構設計方式,隨着互聯網的發展,複雜的平臺、業務的出現,導致SOA架構向更細粒度、更通過化程度發展,就成了所謂的微服務了。
  • 微服務是SOA發展出來的產物,它是一種比較現代化的細粒度的SOA實現方式。
  • SOA與微服務的區別在於如下幾個方面:
    - 微服務相比於SOA更加精細,微服務更多的以獨立的進程的方式存在,互相之間並無影響
    - 微服務提供的接口方式更加通用化,例如HTTP RESTful方式,各種終端都可以調用,無關語言、平臺限制
    - 微服務更傾向於分佈式去中心化的部署方式,在互聯網業務場景下更適合

RPC與 REST 的區別

  • Rest基於http作爲應用協議,不同語言之間調用比較方便。典型代表就是spring cloud框架
  • RPC是基於TCP和HTTP協議的,是把http作爲一種傳輸協議,本身還會封裝一層RPC框架的應用層協議,不同語言之間調用需要依賴RPC協議,典型代表就是Dubbo

REST和SOAP協議的區別

  • REST基於HTTP協議
  • SOAP基於任何傳輸協議:諸如 TCP、HTTP、SMTP,甚至是 MSMQ等
  • SOAP 是一種 RPC 框架,HTTP 是承載協議,本身是一種應用協議,實現了調用遠程就像調用本地接口一樣
  • REST 是一種架構風格,客戶端需要通過 URL 去調用服務端,HTTP 本身即是承載協議,也是應用協議
  • SOAP 適合企業應用,REST 更適合高併發場景。 SOAP 的業務狀態大多是維護在服務端的,而 REST 是無狀態的操作,維護的是資源狀態,將會話狀態交由客戶端維護

參考鏈接

  • https://www.cnblogs.com/aspirant/p/9172336.html
  • https://blog.csdn.net/jiaoyajieqianyi/article/details/84102840
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章