2017-04-05 85 views
0

我正在管理一個非常大的企業應用程序,因爲我實現了微服務體系結構。基於業務實體&的操作創建了獨立微服務。 例如,用於數據庫訪問的單獨微服務

  1. 用戶操作服務
  2. 產品運營服務
  3. 財務運營服務

請注意,每個服務使用與WCF N層架構來實現。即具有單獨的層(可獨立部署到單獨的服務器)以用於業務和數據訪問。

有是由所有的微服務訪問的中央數據庫。有一些常見的實體像所有服務訪問的「用戶」,所以我們在多個服務中有冗餘的數據庫調用。由於需要從許多地方的數據庫訪問更多的努力(即一列重命名需要的所有應用程序的部署)

爲了減少&優化代碼,我打算創建單獨的微服務,並將所有數據庫操作了進去。即服務可以爲「數據庫操作服務」調用任何數據庫操作,如添加/更新/選擇。

我想知道是否有我不知道的任何隱藏的挑戰。我是否應該這樣想?我可以認爲這個概念有什麼改進?

回答

0

我打算創建單獨的微服務,並將所有數據庫操作進去

這就是你將失去從微服務架構的所有優點。一項服務停止運行 - 整個應用程序停機。除非您在多個節點上進行復制。

如果如果一個人服務下去(不意味着它是連接到數據庫服務)您的應用程序不能正常工作,那麼它仍然很糟糕的建築和不使用微服務架構的好處。

糾正通信的是,如果服務將有自己的數據庫。或者至少每個想要的服務,例如實體用戶,都不會從數據庫中獲取它,而是從適當的服務中獲取它。並且該合適的服務可以從一開始就從普通數據庫中獲取。在住宿microService架構過程

下一步(改善)。將每個服務單獨的數據庫的創建。而通過「單獨」,我的意思是一個服務的臨時故障或一個數據庫的臨時故障將允許應用程序的其餘部分保持運行。

一般來說,有在你的方法沒有隱藏的挑戰。它只是沒有提供任何好處,作爲monolith應用程序和基於微服務的中間形式。