【问题标题】:Is using a Java Datasource an expensive ordeal?使用 Java 数据源是一项代价高昂的考验吗?
【发布时间】:2009-02-25 21:58:53
【问题描述】:

我的 Java(非 Web)应用程序可能必须创建大约 200 个不同数据源的连接池。是的,所有 200 个都连接到不同的数据库。 没有池中有 200 个连接。

这里有一些困扰我的问题..

1) 我应该预见到重大(性能等)问题吗?

2) 是否有任何可用的非商业 Java 工具可用。

3) 我试图在网上搜索,但并没有真正找到直接的答案。有没有人有这方面网络上一些好的资源的链接?

提前致谢

【问题讨论】:

  • 为什么有这么多数据源?
  • 这是一个网络应用程序吗?您是指 200 个不同的数据库还是一个具有 200 个连接大小的池的数据库?
  • 一个具有 200 个不同数据源的应用程序都需要一个连接池,因为它们需要超过 1 个连接?如果您的应用程序需要这么多信息,那么创建数据源可能不是您最大的问题之一。
  • 澄清连接是否可互换,即所有数据库是否包含相同的数据,即您需要 200 个不同的连接池?

标签: java database performance jdbc connection-pooling


【解决方案1】:

如果您正在编写桌面/控制台应用程序 您可以使用Commons DBCP 来管理您的数据源和连接池。 您可以在此处添加 Spring 以帮助管理数据源的配置。

如果您正在编写 web 应用程序。 您可以使用您的 servlet 容器来设置和管理数据源(通过 JNDI 检索它们)。

你的问题很模糊。我仍然不明白您需要所有这些数据源的上下文。

我的猜测是您需要在池中具有大量连接的几个数据源。

【讨论】:

    【解决方案2】:

    您是否需要同时访问所有数据源?如果不是,我将直接使用连接,而不需要在其中一个连接时进行池化,或者将连接池保守地配置为 0 作为最小打开连接。我要担心的唯一资源是打开的套接字。如果您保留大量打开的套接字,您可能会遇到操作系统限制甚至 TCP 限制。请注意,某些版本的 windows 限制每秒可以建立的新 tcp 套接字的数量。因此,当在 Windows 98 上运行您的应用程序同时建立大量连接时,应用程序的启动可能会变慢或在极端情况下可能会失败。 毕竟我不会真正担心拥有 200 个数据源,除非它们有数千个。

    【讨论】:

      猜你喜欢
      • 2012-03-21
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      • 1970-01-01
      • 2020-05-21
      • 1970-01-01
      • 2010-12-15
      • 1970-01-01
      相关资源
      最近更新 更多