2010-05-19 47 views
1

使用ESB而不是直接访问数据库(通过Hibernate或JDBC)有什么好处。我知道你可以在总线上重复使用这些消息,但是你能不能把你的数据库访问代码打包成一个jar包,并将它分发给需要访问的不同系统(假设所有的访问系统都支持Java)?服务总线Vs直接访问数据库

回答

2

ESB增加了一个抽象层来为您服务/数据库层。您可以将jar分发到需要访问服务的所有应用程序,但如果服务更改其合同或业务逻辑需要更新,该怎么办?对于所有的应用程序来说,改变他们的jar文件是非常困难的。特别是在企业环境中,只需更改一个jar文件就需要一个大的更改控制过程,最终增加更改成本。

如果您使用的是ESB,添加或删除路由服务可以在一个单点来完成。因此,每次更改的成本最低。也就是说,有几个缺点,比如ESB可能会成为您应用程序中的单点故障。因此,您需要有足够的冗余来应对任何故障。

+1

考虑到这一点,传输上的行为也会有所不同。一些消费系统可能需要保证交付,而其他消费系统可能会因各种因素而错过或跳过。在发布/分发数据时,选择数据的富集(或混淆)也是一项常见要求。这些事情都不需要成为数据库或消费应用程序的问题,并且可以合理地作为BUS结构的功能。 – JoeGeeky 2010-05-19 18:25:09