【问题标题】:Most Robust Data Source for Production Environment生产环境最强大的数据源
【发布时间】:2011-12-29 03:46:16
【问题描述】:

我使用DriverManagerDataSource 进行本地开发。我目前正在使用org.apache.commons.dbcp.BasicDataSource,因为正在创建的连接太多。

关于在连接池方面为客户在生产环境中设置数据库的最佳方式,有人有什么建议吗?

【问题讨论】:

    标签: spring datasource connection-pooling


    【解决方案1】:

    看看BoneCP,挺快的。

    除了所有示例之外,还有FAQ 可以为您提供关于连接池、极端情况以及 BoneCP 如何处理它们的非常简洁和漂亮的概述。

    【讨论】:

      【解决方案2】:

      我通常倾向于选择C3P0。对我来说总是很好。由于 C3P0 在性能和功能方面一直“足够好”,因此实际上没有进行任何更深入的分析或比较。

      【讨论】:

        【解决方案3】:

        是的,我强烈建议将池数据源用于生产就绪型应用程序。

        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        

        DriverManagerDataSourceSingle-ConnectionDataSource 提供连接池,没有要设置的池配置属性。

        虽然SingleConnectionDataSourceDriverManagerDataSource 很棒 对于小型应用程序并在开发中运行,您应该认真考虑在生产应用程序中使用任何一种的含义。因为SingleConnection-DataSource 有一个且只有一个数据库连接可供使用,所以它在多线程应用程序中效果不佳。同时,即使DriverManager-DataSource 能够支持多线程,每次请求连接时创建新连接都会产生性能成本。由于这些限制,我强烈建议使用池数据源。

        我已经展示了示例池化数据源配置

        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <propertyname="driverClassName"value="org.hsqldb.jdbcDriver"/>
        <propertyname="url" value="jdbc:hsqldb:hsql://localhost/test"/>
        <propertyname="username"value="sa"/>
        <propertyname="password"value=""/>
        <propertyname="initialSize"value="5"/>
        <propertyname="maxActive"value="10"/>
        </bean>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-11-08
          • 1970-01-01
          • 2019-10-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-02
          • 1970-01-01
          相关资源
          最近更新 更多