2016-07-28 43 views
0

我想自己推到制定一套微服務的一個個人項目,將主要爲:在基於微服務的體系結構中,我將如何去訪問數據庫?

使用彈性搜索 民意調查各種數據存儲 地方數據和讀取數據存儲 數據公開一個REST API來用戶

這個例子的目的,可以說,我有一個預約MS和MS銷售

的第一件事情是發生在我是如何處理的數據存儲。

  1. 每個MS應該有自己的數據存儲嗎?
  2. 我應該引入一個處理來自所有其他微服務的所有數據的持久性MS(這似乎很奇怪)。
  3. 每個MS應該共享一個數據庫,但是處理它自己的事務。

如果你有每個服務處理自己的持久性將不會顯着膨脹一個微服務,你有很多樣板代碼和庫的整體足跡(作爲一個例子休眠會成爲跨每個項目的必需庫,讓每個MS都必須加載同一組庫)似乎很可怕)。

所以我想最重要的問題是在微服務體系結構中管理數據庫連接的公認方法是什麼。

回答

2

的這個問題的答案很簡單:

  • 不要試圖建立一個分佈式整體:不建立一個持久性層作爲微服務。
  • 不要試圖執行分佈式事務,並嘗試通過擁有域綁定服務來實現功能性方法。
  • 你將不得不在幾個微服務中包含Hibernate。這是你必須接受的折衷。