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