使用 ESB 而不是直接访问数据库(通过 Hibernate 或 JDBC)有什么优点。我知道你可以重用总线上的消息,但是你能不能将你的数据库访问代码打包成一个jar并将其分发到需要访问的不同系统(假设所有访问系统都支持Java)?
最佳答案
ESB 向您的服务/数据库层添加了一个抽象层。您可以将 jar 分发到需要服务访问的所有应用程序,但如果服务更改其契约(Contract)或需要更新业务逻辑怎么办?对于所有应用程序来说,更改其 jar 文件确实很困难。特别是在企业环境中,仅更改 jar 文件将需要大量的更改控制过程,这最终会增加更改成本。
如果您使用 ESB,则可以在单个点添加删除或路由服务。因此,每次更改的成本将是最小的。也就是说,有几个缺点,例如 ESB 可能成为应用程序中的单点故障。因此,您需要有足够的冗余来应对任何故障。
关于java - 服务总线与直接数据库访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2867862/