iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 6
1
Software Development

Microservices in Action: with example in Node.js系列 第 6

切割服務邊界 - Microservices in Action: with example in Node.js

  • 分享至 

  • xImage
  •  

微服務基本上就是要將原本的單體切成為多個小的獨立個體,所以最先遇到的問題就是,該怎麼切?什麼才算適當大小是什麼?

微服務基本上隨著業務邏輯不同,會有不同的切法,所以怎麼切出一個適當的服務邊界,不是一門科學,反而更像是一門藝術。

幾個明顯的預兆:

  1. 不會與其他服務共享資料表:當設計一個微服務時,如果你有多個引用同一個資料表的服務,這是一個警訊。
  2. 只使用到少量的資料表:例如每個微服務,只掌管 1~2 個資料表。
  3. etc...

資料表:https://en.wikipedia.org/wiki/Table_(database)

定義好微服務之後,可以根據以下條件驗證設計:

  • 每個服務只承擔單一責任。
  • 服務之間不存在過度的互動,如果有的話,可能根本不應該把它們切開。
  • 每個服務夠小,適合小團隊使用。
  • 兩個或更多個服務的部署,不應該存在相互依賴的關係。
  • 切割後的服務邊界,不會引發資料不一致的 transaction 危機。

database transaction: https://en.wikipedia.org/wiki/Database_transaction


上一篇
圍繞在微服務相關的議題
下一篇
領域驅動設計 - Microservices in Action: with example in Node.js
系列文
Microservices in Action: with example in Node.js24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言