`
chenzehe
  • 浏览: 538128 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

BoneCP源码——概述

 
阅读更多

BoneCP是一个开源的Java数据库连接池,其内部使用了JDK1.5的并发包java.util.concurrent来保证同步,而且采用分段思想,避免单点加锁的竞争(ConcurrentHashMap也是使用这种思想来实现的),具有以下特点(官网):   

  • Highly scalable, fast connection pool
  • Callback (hook interceptor) mechanisms on a change of connection state.
  • Partitioning capability to increase performance
  • Allows direct access to a connection/statements
  • Automatic resizing of pool
  • Statement caching support
  • Support for obtaining a connection asynchronously (by returning a Future<Connection>)
  • Release helper threads to release a connection/statement in an asynchronous fashion for higher performance.
  • Easy mechanism to execute a custom statement on each newly obtained connection (initSQL).
  • Support to switch to a new database at runtime without shutting down an application
  • Ability to replay any failed transaction automatically (for the case where database/network goes down etc)
  • JMX support
  • Lazy initialization capable
  • Support for XML/property configuration
  • Idle connection timeouts / max connection age support
  • Automatic validation of connections (keep-alives etc)
  • Allow obtaining of new connections via a datasource rather than via a Driver
  • Datasource/Hibernate support capable
  • Debugging hooks to highlight the exact place where a connection was obtained but not closed
  • Debugging support to show stack locations of connections that were closed twice.
  • Custom pool name support.
  • Clean organised code. 100% unit test branch code coverage (over 180 JUnit tests).
  • Free, open source and written in 100% pure Java with complete Javadocs.

 官网上提供的跟其它连接池的性能测试对比:

Single Thread

  • 1,000,000 get connection / release connection requests
  • No delay between getting/releasing connection.
  • Pool size range: 20-50.
  • Acquire increment: 5
  • Helper threads: 1
  • Partition count: 1

Multi-Thread

  • 500 threads each attempting 100 get/release connection
  • No delay between getting/releasing connection.
  • Pool size range: 50-200.
  • Acquire increment: 5
  • Helper threads: 5

 

 本次学习基于bonecp-0.7.1.RELEASE版本,主要jar包如下:

com.jolbox.bonecp                  连接池核心包
com.jolbox.bonecp.hooks       支持connection状态改变时的事件通知
com.jolbox.bonecp.proxy        代理java.sql.*下的接口,仅供内部使用
此版本主要依赖的外部包有:

slf4j
guava(google lib)

jsr166y

提供外部支持和测试
com.jolbox.bonecp.provider
com.jolbox.bonecp.spring

 

 

分享到:
评论
1 楼 Arbow 2013-06-27  
请教一个问题。现在互联网业务的数据库通常用分片方式来连接一组数据库,比如对于同一个物理库,会有

jdbc:mysql://xxx.xxx:3466/user1
jdbc:mysql://xxx.xxx:3466/user2
jdbc:mysql://xxx.xxx:3466/user3
...
jdbc:mysql://xxx.xxx:3466/user10

这样大量的jdbc链接,如果一个库配置至少5个连接,并且有多个jvm服务在运行,这样对于一个物理库连接上的并发链接是比较多的。能否通过对物理库做一个大的连接池,操作具体的逻辑库时再通过执行类似using xxx;这样的方式来减少连接数?

相关推荐

    BoneCP.zip_BoneCP_BoneCP 源码_jdbc BoneCP_oracle

    总结来说,这个压缩包提供的源码实例展示了如何在Java项目中集成BoneCP连接池,并针对Oracle和MySQL数据库进行配置。通过学习和实践这个例子,开发者可以更好地理解和运用数据库连接池,提升应用的性能和稳定性。

    数据库连接池BoneCP源码分析报告

    BoneCP是一款高效、轻量级的Java数据库连接池实现,它的源码分析对于我们理解数据库连接池的工作原理,优化数据库性能以及进行二次开发具有重要意义。 首先,我们需要了解数据库连接池的基本概念。数据库连接池是...

    数据库连接池BoneCP源码分析报告.doc

    BoneCP 是一个轻量级、高性能的 Java 数据库连接池,本文将深入剖析其源码,理解其工作原理和实现机制。 1. **BoneCP 简介** BoneCP 是由 Jeff Smith 创建的一个开源数据库连接池,它设计的目标是提供比 C3P0 和 ...

    bonecp 0.7.1 jar包以及源码

    这个标题提及的是"bonecp 0.7.1 jar包以及源码",这意味着我们拥有 BoneCP 的特定版本0.7.1-rc2的二进制jar文件和源代码,这对于开发者来说非常有价值,因为可以直接查看和理解其内部工作原理。 1. **BoneCP简介**...

    bonecpdemo 含jar包源码

    【骨CP(BoneCP)连接池详解】 BoneCP是一款高效的、开源的JDBC数据库连接池,它被设计成轻量级且易于集成到其他项目中。在Java开发中,数据库连接池是必不可少的组件,它提高了数据库操作的性能,通过复用已建立...

    java数据库连接池-bonecp java源码

    在深入研究 BoneCP 的源码时,可以关注以下几个关键组件: 1. `ConnectionHandle`:这是 BoneCP 提供的接口,代表数据库连接,实际的实现类通常继承自JDBC的`java.sql.Connection`。 2. `PoolConfiguration`:包含...

    bonecp连接池demo

    BoneCP 的源码阅读可以帮助开发者深入理解其内部机制,例如连接分配、回收、线程安全等方面的实现。同时,对于工具的熟练使用,能够帮助开发人员更高效地管理数据库连接,提升应用的性能和稳定性。 在实际项目中,...

    Bonecp参数配置.doc

    #### 一、骨架构造——配置文件格式 BoneCP的配置文件通常采用XML格式,如`bonecp-config.xml`所示。其基本结构包括: 1. **`&lt;bonecp-config&gt;`**:配置文件的根元素,包含所有BoneCP的配置信息。 2. **`...

    BoneCP数据源应用

    BoneCP 数据源是一种高效、快速的数据连接池技术,它被设计用于提高应用程序处理数据库连接的性能和效率。在Java环境中,数据库连接池是管理数据库连接的关键组件,它减少了创建和销毁连接的开销,从而提升了整体...

    Bonecp实例

    通过阅读源码,我们可以更好地理解BoneCP的工作原理,从而在实际开发中更加灵活地使用它,解决特定场景下的性能瓶颈。 此外,了解 BoneCP 的工作原理对于优化数据库访问性能至关重要。例如,通过调整连接池的配置...

    JAVA源码Java数据库连接池BoneCP

    JAVA源码Java数据库连接池BoneCP

    基于java的开发源码-数据库连接池 BoneCP.zip

    基于java的开发源码-数据库连接池 BoneCP.zip 基于java的开发源码-数据库连接池 BoneCP.zip 基于java的开发源码-数据库连接池 BoneCP.zip 基于java的开发源码-数据库连接池 BoneCP.zip 基于java的开发源码-数据库...

    bonecp-0.8.0.RELEASE.jar

    BoneCP 是一个高效的开源连接池实现,主要用于Java应用程序中数据库连接的管理。它提供了一种高效、可配置的方式来管理和复用数据库连接,从而提高应用程序的性能和稳定性。在标题中提到的 "bonecp-0.8.0.RELEASE....

    bonecp0.7 所有jar包

    BoneCP是一款轻量级的Java数据库连接池,它以其高效性能和简洁的API而受到开发者们的欢迎。在Java应用程序中,数据库连接池是至关重要的组件,它可以有效地管理和复用数据库连接,减少创建和销毁连接的开销,提高...

    BoneCP 连接池学习笔记

    ** BoneCP 连接池学习笔记 ** BoneCP 是一个高效、轻量级的 Java 数据库连接池(JDBC Connection Pool)实现。它在性能上优于其他同类连接池,如 C3P0 和 DBCP,尤其适用于高并发场景。在深入理解 BoneCP 之前,...

    bonecp数据库连接池jar包

    bonecp数据库连接池jar包0.7.1: bonecp-0.7.1.RELEASE.jar bonecp-provider-0.7.1-rc2.jar bonecp-spring-0.7.1.RELEASE.jar

    BoneCP(连接oracle例子+jar包)

    BoneCP是一款高效的、开源的Java数据库连接池(JDBC Connection Pool)框架,它在性能上优于其他同类连接池,如C3P0和DBCP。本资料提供了使用BoneCP连接Oracle数据库的实例以及所需的jar包,帮助开发者快速理解和...

    BoneCP的xml使用实例

    BoneCP是一种高效的、开源的Java连接池实现,它旨在提供比其他常见的数据库连接池如C3P0和DBCP更高的性能。在这个实例中,我们将学习如何通过XML配置文件来使用BoneCP,以及如何在Java代码中加载这个配置。 首先,...

    bonecp 相关所有jar包以及连接demo

    BoneCP 是一个高性能的 JDBC 连接池,它在 Java 应用中被广泛使用,以提高数据库连接的效率和管理。在这个压缩包中,包含了 BoneCP 的所有必需的 JAR 包,以及一个连接示例(demo),帮助开发者快速理解和使用 ...

Global site tag (gtag.js) - Google Analytics