2016-04-23 19 views
1

我開始一個新項目,並有興趣將其設計爲微服務。我正在試圖圍繞它進行包裝:使用微服務器進行compex報告

假設我有訂單服務和產品服務。現在我想製作一份報告服務,向我提供包含某個產品類別產品的所有訂單。

由於訂單不知道產品,這意味着我需要獲取所有訂單,循環它們並獲取每個訂單的產品,然後返回這些如何匹配。

這個假設是否正確或者是否有更有效的方式來使用微服務?

回答

6

在微服務體系結構中,過程是提取應用程序的用例和服務邊界。在上面的問題中,至少有兩個服務邊界,一個用於交易,另一個用於報告。

當你有兩個不同的服務邊界時,典型的方法是複製它們之間的一些數據元素,例如。每當您進行銷售時,數據都應該發送到報告和交易服務。將數據廣播到不同邊界的一種可能方法是使用消息隊列。複製數據使得它們可以獨立演變並獨立運行,並且變得自給自足,這是微服務的目標之一。

個人的建議,儘管你可能想在開始微服務路線之前先從巨石開始。微服務通常在操作上更重;在最初的應用階段很難推斷其優點。在開發單一應用程序之後,它往往會更好地工作,因爲它可以更容易地看到什麼不起作用,並且可以通過類似微服務的系統改進什麼。

+3

全心全意地接受你的答案。首先請看Monolith:http://martinfowler.com/bliki/MonolithFirst.html –

相關問題