簡體   English   中英

微服務和網絡服務有什么區別?

[英]What is the difference between microservices and webservices?

我最接近發現實際差異的是這篇文章

但我不明白是什么讓我選擇一個而不是另一個,如果微服務也可以使用 REST API 並通過 http 進行通信。

主要是不明白微服務是什么,能不能代替webservice來,除了目的

將大型軟件應用程序分解為松散耦合的模塊

微服務是一種軟件架構,可以通過網絡服務來實現。

一個Web服務僅僅是在“網絡”或HTTP提供服務的技術(許多之一)。

我在這里得到了一個簡單的答案:微服務是一種新的軟件架構。 它基於網絡服務。 但它可以是任何作為獨立功能實現的服務,它擁有自己的數據庫並且可以獨立部署。

微服務是一種架構,其中系統的所有組件都放入單獨的組件中,這些組件可以單獨構建、部署和擴展。

要點是: Web 服務(正如名稱所宣布的)是您期望“處理”HTTP 的東西——換句話說,它在萬維網的上下文中做一些事情。

而微服務不受 WWW 上下文的影響。 就其核心而言,微服務應該提供一項特定的服務 - 但例如對 http 協議沒有限制。

微服務通常會實現一個寧靜的“Web 服務”——但它不一定是那樣的!

除此之外,微服務通常意味着作為一個巨大的單體應用程序的反模型,該應用程序為許多不同類型的請求提供服務。

微服務是 Web 服務的擴展。

  • Web 服務本質上通常是垂直的(提供者-消費者通信),而微服務本質上是水平的
  • 由於以下原因,微服務被視為架構。
  • 微服務屬於一種特定的應用程序。
  • 微服務正在解決特定問題,因此可以說是輕量級的。
  • 更改本質上是隔離的,因為一個微服務的更改不會影響其他微服務(例如,登錄微服務中所做的更改不會影響支付微服務)
  • 擴展單個微服務很容易。
  • 微服務通常有自己的數據庫。

微服務:-

微服務是一種可以與 Web 服務一起使用的軟件架構。 這種方法涉及將大型軟件應用程序拆分為解耦模塊,其中微服務運行獨特的進程並通過 API 進行通信。 它的開發可以通過使用消息傳遞、事件驅動的 API 或使用非 HTTP 支持的 RPC 機制。

當大型應用程序出現故障或停機時,微服務架構可以挽救這一天。 如果某個特定服務在通信中出現故障,則整個應用程序不會受到單個模塊故障的影響。 Java、C#、Python 和移動軟件開發語言的微服務組合是可能的。 它可以獨立部署在業務領域的服務模型中。 在此處輸入圖片說明

網絡服務:-

Web 服務只是可以通過“Web”或 HTTP 提供服務的幾種技術之一。 作為一種特定類型的面向服務的體系結構 (SOA),Web 服務代表 Web 應用程序的功能。

它通過使用標准的 HTTP 協議和數據表示的通用格式(如 XML、JSON 等)定義了 API 和主代碼之間的交互機制。 這允許由不同技術開發的軟件應用程序相互通信。

Web 服務不涉及前端開發。 它們不連接到任何開發語言或用戶設備軟件平台。 如果用不同的語言和不同的操作系統編寫,也可以將不同的 Web 服務組合成一個單一的服務,就像在微服務中一樣。

微服務是 web 服務的一個子集 也用於命名架構,例如“基於微服務的架構”

微服務是一個神器,而不是一個架構。 幾家世界class公司都知道

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environments-cfg-alb-shared.html

在此處輸入圖像描述

在微服務神器之前,我們有經典的 web 服務或 rest api。甚至在此之前我們有 Soap web 服務和 XML。

因此,作為總結,當有人談論微服務時,他指的是 web 服務的一個子集,具有一些區別於經典 web 服務或 rest api 的特征

一個主要特征是每個服務一個唯一的數據庫或數據庫

這里的另一個特點來自於 AWS 之類的商品。 其中一些適用於 rest api 或 soap 服務。 我將用粗體標記一些非常具體的微服務。

https://aws.amazon.com/microservices/

  • 敏捷
  • 靈活縮放
  • 易於部署
  • 技術自由
  • 可重用代碼
  • 彈力

https://microservices.io/

  • 高度可維護和可測試
  • 松耦合
  • 可獨立部署
  • 圍繞業務能力組織
  • 由一個小團隊擁有

https://www.baeldung.com/cs/microservices-db-design

  • 每個服務的數據庫
  • CQRS

https://learn.microsoft.com/en-us/azure/architecture/microservices/design/data-considerations

在此處輸入圖像描述

服務是為更大的應用程序架構執行的自治應用程序。

Web服務是一種通過web ui使應用程序對其他應用程序可用的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM