簡體   English   中英

什么是微服務,與 MVC 有什么聯系

[英]What is Microservices and is there a connection with MVC

我熟悉 spring boot 框架,我開發了一個幫助處理在線作業的應用程序。我使用了很少的服務類來處理應用程序的不同任務,它的結構可以在這里看到。

我的項目的文件結構

我已經看到幾個復雜的應用程序根據它在應用程序中執行的任務構建為獨立的包。

(1) 我的第一個問題是我的應用程序可以稱為微服務應用程序嗎?? 因為我在應用程序開發中使用了獨立的服務。

(2) 我的第二個問題是在微服務架構中開發的應用程序是否可以同時具有 MVC 架構。但是我在幾個教程中看到它們是兩種不同的架構。但是一個 Moicroservices 應用程序也同時具有模型、視圖和控制器時間。

那么這兩個可以同時使用嗎??

謝謝!!

根據 Chris Richardson(微服務領域公認的思想領袖)的說法,微服務是微服務 - 也稱為微服務架構 - 是一種架構風格,它將應用程序構建為服務的集合

高度可維護和可測試 松散耦合 可獨立部署 圍繞業務能力組織 由一個小團隊擁有 微服務架構使大型復雜應用程序能夠快速、頻繁、可靠地交付。 它還使組織能夠發展其技術堆棧。

這是交付方式,基於 12 個因素https://12factor.net/ 我們使用領域驅動設計作為其中一種方式。

MVC 是設計為服務的方式,我們有模型視圖和控制器。

在微服務架構中,我們可以以一種方式使用 MVC,其中每個組件都將被分布。

請閱讀微服務模式。 很好的了解微服務架構的書

1.回答您的問題,是的,如果您的應用程序遵循網站中提到的 12 個因素,則它可以是微服務。

  1. 是的,微服務可以采用 mvc 模式,但它們將是分布式的,就像我們有后端微服務一樣,我們有 UI 微前端。

您應該自己對微服務的概念和理論進行更深入的研究。 在沒有基礎知識的情況下研究其他應用程序可能會產生誤導。

(1) 僅僅因為您使用多個稱為服務的類並不意味着您正在構建微服務應用程序。 微服務應用示例可以是 - 學生管理休息 api、問答管理休息 api、用於管理的 UI、用於公共使用的 UI 等。它們都可以是單獨的 Spring Boot 應用程序,或任何其他能夠處理需求的技術(node.js)。 js、python、php、Asp.net ...)您應該能夠將它們作為單獨的獨立應用程序進行部署、測試和使用。

(2)我認為微服務應用程序不需要視圖,它可以是rest/soap應用程序、日志聚合應用程序、健康檢查應用程序、消息服務應用程序等。但不同類型可以使用不同的架構,其中之一可以是MVC。

根據M. Fowler 的定義,微服務是

..一種將單個應用程序開發為一組小型服務的方法,每個服務都在自己的進程中運行並與輕量級機制(通常是 HTTP 資源 API)進行通信。

如您所見,定義不明確。 我認為您正在構建一個單體應用程序,將職責很好地分離到稱為XyServices類中 - 一個可能遷移到微服務的候選者。

暫無
暫無

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

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