有 2 个不同的应用程序在同一个 jboss 服务器上运行。我想通过同一个数据源将这两个应用程序与同一个mysql数据库连接起来。
运行这两个应用程序会产生什么样的影响 -
我想这些问题可能会发生。- 表锁定问题、性能缓慢、连接问题、ACID 属性丢失问题。
这种方法有什么缺点吗?
这一切都不会发生(表锁定问题、性能缓慢、连接问题、ACID 属性丢失问题)。
数据库无法真正区分两个连接是否来自同一个应用程序。
当然,两个应用程序仍然意味着两倍的请求,因此可能会影响性能。ACIDity 不受影响,您也不太可能用完 TCP 端口。
访问同一数据库的两个应用程序的性能与流行度两倍的应用程序的性能相同。
没有缺点,只要两个应用程序都有足够的连接并且您的事务写得很好,共享相同的数据源是正常的
也许您应该考虑是否有任何优势?
在我看来,必须有令人信服的理由不为单独的应用程序创建单独的数据源——我觉得这不是你的情况。
无论如何,当您在应用程序之间共享连接池或不共享连接池时,您提到的一些缺点可能会发生,因为它们是数据库的属性而不是连接。
编辑:总结下面与 Jan Dvorak 的良好讨论,以下是每个应用程序使用一个(或多个)数据源的一些论点:
干杯,
主要问题是池化。随着越来越多的应用程序使用数据源,打开的连接也越来越多,因此默认池可能不够用。
除此之外,所有其他问题都与数据库引擎和您的数据库设计有关,而不是与数据源有关。无论如何访问数据库引擎都不会停止与 ACID 兼容,不会比来自不同数据源的访问慢,等等......