2017-03-09 114 views
0

我遇到了微服務體系結構的電子商務應用程序,其中每個表都有它自己的微服務,基本上使用CRUD操作(類似於每個表的其餘客戶端)。 現在我正在考慮如何在業務領域進行組合和建模,在此之前我想知道是否有人遇到過這種情況,是否適合架構。 任何建議將會非常有幫助。 謝謝。微服務每個數據庫表

+1

每個微服務必須有一個單獨的表和服務間的通信throught網絡完成。他們不得共享相同的持久性。在這裏閱讀更多:https://www.amazon.com/Building-Microservices-Sam-Newman/dp/1491950358/ref=pd_sim_14_29?ie=UTF8&dpID=5156gHBSxaL&dpSrc=sims&preST=_AC_UL160_SR122%2C160_&refRID=0081XVQGTK2AQ54GQ21P –

+0

感謝康斯坦丁爲響應我我絕對同意你的觀點,微服務必須隱藏它的實現和數據庫,但在這種情況下,每個表都有單獨的微服務。例如,對於表A,它們具有MicroserviceA,對於B microserviceB和對於每個表都是一樣的,有多少個表有很多微服務。 –

回答

2

你在混合不同的,不相關的東西。 (微型)服務是執行某些特定任務的邏輯實體。他們與其他服務進行通信以執行更大範圍的任務。

表/ CRUD/SQL/NO-SQL來自一個完整的不同級別。其數據的保存位置以及訪問方式。

其確實服務使用SQL並有表。爲每個服務分配表格也可能是一個好主意。我甚至會說,如果2個服務直接使用同一個表,那麼你可能正在考慮一個設計問題。

但是您不能將服務與表格等同起來,從概念上講,它們屬於不同的世界。

1

每個微服務都應該有自己的一套SQL表,其他微服務都不能訪問。但是每個SQL表擁有一個微服務,並且每個微服務都支持CRUD操作,這通常是一種反模式:它將強大的DBMS和查詢語言轉變爲簡單的記錄管理器:沒有跨表交易,連接,過濾,排序,分頁等

1

微服務是任何應用程序的邏輯塊,結合他們在SQL級別沒有任何意義。

例如:讓我們考慮您創建一個訂單服務,它允許客戶下訂單。

現在訂單也包含訂單商品,並可能有客戶對象的參考,對於所有這些,您最終可能會創建多個表。所以,不要只是認爲SQL表和微服務一起

如果您還有疑問發佈更準確的問題,將有助於:)

相關問題