例如,我有一個有4個微服務的項目:client-web,admin-web,client-api,admin-api。如何在微服務之間共享代碼?
這四個微服務應該共享一個DB代碼,我應該如何將DB代碼作爲git的子模塊並在每個微服務中使用它?
是否違反微服務原則?
例如,我有一個有4個微服務的項目:client-web,admin-web,client-api,admin-api。如何在微服務之間共享代碼?
這四個微服務應該共享一個DB代碼,我應該如何將DB代碼作爲git的子模塊並在每個微服務中使用它?
是否違反微服務原則?
我認爲你應該小心製作一個共享庫並將它包含在你的微服務中,因爲它可以給你一個耦合點,這意味着如果你必須對庫進行更改,則可能必須全部更改你的服務,然後你放棄了這種體系結構的好處之一 - 部署小型服務而不需要部署整個應用程序。
我認爲一個更好的方法是使其成爲一個微服務。
「如果你必須改變圖書館,你可能不得不改變你的所有服務」,是的,抱歉,但不,這就是爲什麼它被稱爲「共享」庫,而不是「靜態」;) – nonchip
我認爲它是總是一個糟糕的主意,有一個「持久性」的微服務。這是一種微服務反模式,它導致了微服務整體。 –
這可能取決於所使用的語言,哪種解決方案效果最好,仍然可能是基於意見的。但我不明白共享一段代碼是否會違反微服務原則。畢竟,他們每個人都需要連接到數據庫,那麼爲什麼要複製代碼? – GolezTrol
通過創建一個庫? – jgauffin
名稱上的4個微服務似乎更像客戶端服務器架構而不是微服務。通常,每個微服務都有自己的實體/數據庫訪問代碼。也許你擁有的DB代碼本身就是微型服務? – longday