簡體   English   中英

如何使用微服務架構分離現有項目?

[英]How to Separate Existing Project using Micro Service Architecture?

我在asp.net MVC中為銀行部門創建了一個項目。

在開發時,我們沒有考慮擴展。因此,我們沒有使用任何模塊化的體系結構。

但是現在我在新功能的部署和開發方面面臨很多問題。

如果我開發任何新功能,那么當前我必須發布整個項目,因為只有一個namepeace-projectmain.dll。

現在,我想將所有控制器分離在單獨的項目中,並想單獨部署它,並使用MicroService體系結構,我想在主項目中使用它。

注意“我的視圖”與控制器緊密結合。

那么如何在MicroService Architecture中遷移整個控制器?

項目結構說明

“如何遷移到微服務”需要一個非常長的答案,這可能是一本書。 但是,我可以給您一些指導,以幫助您。

首先,您可以遵循DDD方法來幫助您正確識別應用程序的有限上下文。 在理想情況下,每個域都應對應一個有界上下文。 因此,您可以按有限的上下文划分。 每個有界上下文可以具有一個或多個微服務,但是微服務不應大於有界上下文。 從我的角度來看,您的控制器已經按域或至少按子域划分了。 您可以嘗試為每個控制器創建一個微服務,並查看其運行情況。 可以進一步拆分,即通過DDD中的聚合(每種聚合類型都可以是微服務)。

其次,每個微服務應該有單獨的項目。 理想情況下,如果您需要彈性和可伸縮性,則微服務不應在外部請求期間調用其他微服務。 這意味着,當微服務收到來自客戶端的請求時,它不應調用另一個微服務。 為此,它應該已經將所有其他微服務所需的數據都已經傳輸到其本地存儲中(使用后台任務,以及同步或異步調用)。

最后但並非最不重要的一點是,每個微服務都應該有自己的數據庫; 它們不應共享相同的數據庫或表。

在這種情況下,我猜一個選擇是將您的控制器轉換為Web API,每種操作方法都返回JSON數據,而不是返回要渲染的視圖。 現在將其視為單獨的后端,可以將其捆綁為一個微服務。 下一步是將您的剃刀視圖轉換為具有2層的純前端微服務(使用諸如angular或react這樣的框架)-

  1. 服務層,負責進行API調用,以獲取Web API返回的JSON數據
  2. 組件層,負責將服務獲取的JSON數據映射到UI元素/表單

暫無
暫無

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

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