2010-05-19 132 views
1

使用ESB而不是直接訪問數據庫(通過Hibernate或JDBC)有什麼好處。我知道你可以在總線上重複使用這些消息,但是你能不能把你的數據庫訪問代碼打包成一個jar包,並將它分發給需要訪問的不同系統(假設所有的訪問系統都支持Java)?服務總線Vs直接訪問數據庫

回答

2

ESB增加了一個抽象層來爲您服務/數據庫層。您可以將jar分發到需要訪問服務的所有應用程序,但如果服務更改其合同或業務邏輯需要更新,該怎麼辦?對於所有的應用程序來說,改變他們的jar文件是非常困難的。特別是在企業環境中,只需更改一個jar文件就需要一個大的更改控制過程,最終增加更改成本。

如果您使用的是ESB,添加或刪除路由服務可以在一個單點來完成。因此,每次更改的成本最低。也就是說,有幾個缺點,比如ESB可能會成爲您應用程序中的單點故障。因此,您需要有足夠的冗餘來應對任何故障。

+1

考慮到這一點,傳輸上的行爲也會有所不同。一些消費系統可能需要保證交付,而其他消費系統可能會因各種因素而錯過或跳過。在發佈/分發數據時,選擇數據的富集(或混淆)也是一項常見要求。這些事情都不需要成爲數據庫或消費應用程序的問題,並且可以合理地作爲BUS結構的功能。 – JoeGeeky 2010-05-19 18:25:09