2013-01-11 78 views
1

每次戰爭都有很多小型部署使用少量Web服務,或者每次戰爭需要大量的Web服務進行大規模部署會更好嗎?網絡服務戰粒度最佳實踐

在這種情況下,假設所有Web服務共享一個共同的後端,並且將從代碼共享中受益。對於小戰爭而言,共享代碼必須放入jar項目中,幷包含在所有較小的部署中。現在每場戰爭都可以單獨進行測試/部署,但是如果後端發生變化,他們都需要更新而不是隻更新一次。

這種情況下的後端是供應商提供的另一種Web服務。它的更新通常是向後兼容的,但並非總是如此。

我知道沒有明確的答案,但任何共享經驗都會有所幫助。

回答

1

作爲一項規則,你會想每個服務一場戰爭。關鍵是服務不必是單一的Web服務(事實上,一些端點可以是其他技術,而不僅僅是Web服務)。服務可以暴露多個端點和合同。 您可以將相關合約組合在一起,例如,處理用戶管理的服務可以包含用戶和組的API。然而,與訂單相關的API可能屬於不同的服務(因此也是戰爭)。 如果切太小服務的作品,你能明白我所說的nano-service antipattern一個服務的開銷比你從它

enter image description here

得到更實用