2017-06-01 81 views
0

我的問題是關於.NET World中參考Container的應用程序體系結構。兩個運行.NET服務的docker節點,互相交談

我去了當地的.NET Development Meetup那裏的人展示瞭如何重新構建我們的應用程序,以適應所有組件到不同的容器中。我喜歡這個想法,回到家中意識到溝通部分是如何發揮出來的。

這是他潦草寫下的東西。每個泡泡代表一個容器。 App design with components moved to their separate containers

現在這裏是百萬美元的問題。我的應用程序是ASP.NET MVC Web App,業務邏輯和數據訪問層是應用程序引用的DLL。其他則在每個依賴層上創建一個REST端點;我沒有看到其他方式,我的DLL可以在單獨的容器中運行,並通過Container Lines進行引用。 .NET提供的方法/框架能夠輕鬆完成此任務嗎?

+0

微服務通常不會像圖中所示那樣設置。相反,每個服務通常都具有完成離散角色所需的全部內容。僅僅因爲你看到他們推廣這種架構的演示文稿並不適合你的應用。 – mason

+0

我想你可以在節點之間使用某種RPC,中間有一臺路由器,並且所有服務都連接到它。看看[WampSharp](https://github.com/Code-Sharp/WampSharp) –

+0

因此,您將不得不設置幾個微服務並以某種方式配置它們之間的交互,在這種情況下基本上沒有任何原因。 – Evk

回答

1

你是對的,你將不得不建立一個小的REST-Api或RPC來與你的組件進行對話。

但我認爲你要與容器粒度。 Think App作爲你的前端層,所以只有HTMl/JS/CSS的東西,你的業務層是一個標準的CRUD rest api,最後你的數據庫放在一個容器中。

使用MVC,您只需要一個App + BL容器和數據庫容器。 或更多,如果你想在自己的容器中的幾個微服務中分解你的業務邏輯。

然而很少有設置需要容器,你應該做一些研究,看看你的解決方案是否需要使用容器。容器最適合用於分離應用程序,以便多個應用程序可以共享服務器而不會干擾系統級別。