2017-08-20 91 views
0

我們正在考慮實施某種微服務架構。我們將有多個團隊維護軟件,我們將使用grpc和protobuf 3作爲點對點通信的序列化機制。目標是一方面將業務邏輯與應用程序邏輯分離,另一方面允許UI跨越多個業務環境。微服務架構中常見的protobuf數據類型?

微服務有時必須處理與其他微服務處理的數據類似或相同的數據。

在這種情況下,建議提取那些常見的proto3數據類型,分別處理它們並將它們作爲依賴項導入到每個微服務中?這樣他們可以在多個服務中重用。或者是不是通過共享任何(共同的)數據類型(無共享體系結構)來關注微服務的去耦?

回答

1

什麼應該讓你想知道爲什麼多個微服務將處理相似或相同的數據。這可能意味着你在切片解決方案上做得太過分了。引用Sam Newman - 「」有界上下文代表自治業務領域(即不同的業務能力),因此是確定微服務分界線的適當起點。「」。

所以我會說 - 應該有一個比業務領域更深的好的商業理由 - >微服務分離。

我最近讀到的關於「共享庫/組件」的一個很好的評論是,很快這個共享庫/組件就成爲你的瓶頸,你所做的任何更改都需要在整個團隊中進行大量的迴歸測試,它可能會被維持它所需的努力所掩蓋。

所以,你可以看到,如果你去微服務,我會投票支持無共享的方法;-)