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

lbpool:一个支持负载均衡的JDBC连接缓冲池

阅读更多
lbpool是根据MySQL的复制机制设计的支持负 载均衡的JDBC连接缓冲池。一般来说,MySQL复制机制涉及一台主服务器(master server)和多台复制服务器(slave server),数据库写操作只发生在主服务器上,而读操作则可以分布到主服务器及其他复制服务器。

虽然lbpool是为MySQL设计的,但也可以方便地扩展到其他支持复制功能的数据库系统,如PostgreSQL等。

负载均衡策略

负载均衡算法主要基于并发连接数,负载和slave的状态等参数来选择合适的服务器:
  • 是否可访问;
  • 复制是否依然在进行;
  • 复制是否已经落后主服务器;
  • 负载是否太高;
  • 数据库连接数是否太多。

一些有用的特性

  • 实时重负载均衡:即当客户端断开,或某服务器断线或重新在线后,系统会对现有数据库连接进行重分配以达到动态的负载平衡;
  • 如果所有服务器都断线,则系统在一段时间内会阻塞数据库查询,避免马上抛出SQLException,当某台机器在线后,则数据库查询马上恢复正常;
  • 如果某台服务器断线,或复制服务器与主服务器断开或滞后很长时间,则原有连接会被切换到其他服务器,而且并不影响正在进行过程的查询;
  •  复制服务器信息配置在主服务器上,支持动态配置,因此可以方便地增加、删除或维护复制服务器。

可与Hibernate的集成?

目前很多系统都采用Hibernate做持久层,而Hibernate支持C3P0, DBCP等JDBC数据库连接缓冲池。

而我公司在做的网站监测项目YouMonitor.Us也是采用Hibernate做数据持久层的,我们目前采用C3P0缓冲池,但C3P0不支持在主服务器、及多个复制服务器间分布查询操作。

因此,JDBC连接缓冲池与Hibernate的集成性显得特别重要。目前不能确定lbpool是否可以与Hibernate集成;若不支持,是否可方便地修改源码来支持?

分享到:
评论
1 楼 xianglei 2008-10-21  
能给发个lbpool的包么?好像现在那个连接不能下载了。邮箱xnang@163.com  谢谢

相关推荐

    Tongweb5中配置JDBC连接池

    当应用需要与数据库交互时,不是每次都去建立新的连接,而是从连接池中获取一个已存在的连接。使用完毕后,连接会归还到池中,以便其他请求重复使用。这种方式避免了频繁创建和销毁连接的开销,提升了系统的响应速度...

    jdbc连接池配置(优化连接速度)

    它预先创建并维护一定数量的数据库连接,当应用程序需要连接数据库时,可以从连接池中获取一个已经建立好的连接,用完后归还而不是关闭,从而避免了频繁的创建和关闭连接带来的性能开销和资源浪费。 **JDBC连接池...

    JDBC连接池驱动.zip

    1. **c3p0**:这是一个开源的JDBC连接池,由Miquel Arqueros创建。c3p0提供了一套完善的连接池管理机制,包括连接的初始化、测试、回收和超时处理。它支持多线程环境,可以自动检测并修复失效的连接。此外,c3p0还...

    JDBC数据库连接池实现原理

    1. **选择连接池实现**:首先,我们需要选择一个合适的数据库连接池实现,如Apache的DBCP、C3P0、HikariCP或Tomcat JDBC连接池等。这些连接池库提供了管理和维护数据库连接的功能。 2. **配置连接池**:在应用的...

    自定义高并发jdbc连接池

    "自定义高并发jdbc连接池"是一个专为处理大量并发请求而设计的解决方案,它允许应用程序高效地管理和复用数据库连接,从而减少数据库连接创建与释放的开销,提高系统的整体性能。 JDBC(Java Database Connectivity...

    简单的jdbc连接池类

    2. **获取连接**:当应用需要访问数据库时,从连接池中获取一个已存在的连接,如果池内没有空闲连接,则等待或者抛出异常。 3. **归还连接**:使用完毕后,将连接返回给连接池,而不是直接关闭,以便后续请求可以...

    JDBC连接池(通用basedao)可直接用的模板

    2. 请求连接:当应用程序需要访问数据库时,向连接池申请一个连接,连接池会检查当前是否有空闲连接,如果有则直接返回,否则等待或创建新的连接。 3. 使用连接:应用程序获取到连接后,进行数据库操作。 4. 归还...

    常用jdbc数据库连接jar包,数据库连接池jar包

    2. C3P0:这是一个开源的JDBC连接池,提供了比DBCP更高级的功能,如连接测试、空闲连接检测、自动扩展等。C3P0通过组合多个数据源来实现连接池,可以更好地控制并发和资源管理。 这些jar包的收集意味着开发者可以...

    Java-jdbc数据库连接池总结.doc

    连接池如同一个预创建的数据库连接集合,应用程序在需要时从池中获取连接,用完后归还,而不是直接关闭。这种方式减少了连接的创建和销毁次数,提高了系统性能,并且可以通过设置最大连接数来防止过度消耗资源。 ...

    完美的java jdbc连接池实例

    Java JDBC 连接池是Java开发中非常关键的一部分,它能有效地管理数据库连接,提高应用程序的性能和效率。本实例提供了完美的Java JDBC连接池配置,适用于Oracle、MySQL和SQL Server等主流数据库,允许开发者轻松地在...

    java JDBC连接池

    DBPool.java 可能是自定义的连接池实现,而 ProxoolDemo.java 可能是使用Proxool连接池的一个示例。Proxool 是一个轻量级的数据库连接池实现,它提供了线程安全的连接管理和性能监控功能。 在ProxoolDemo.java中,...

    jdbc连接池资源声明

    为了解决这一问题,引入了JDBC连接池技术,它能够预先创建并维护一定数量的数据库连接,当应用程序请求连接时,可以从池中获取一个现有的连接,而无需每次都创建新的连接,从而极大地提高了数据库访问效率。...

    jdbc和连接池的jar包

    Java JDBC(Java Database Connectivity)是Java平台中用于与数据库交互的一组接口和类,它使得开发者可以使用标准的Java API来访问各种类型的...在处理大量并发请求或高负载场景下,使用JDBC和连接池是必不可少的。

    JDBC连接池使用工具 C3P0 连接池 and druid-1.0.9

    C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0的主要特点包括: 1. **连接测试**:C3P0提供了多种测试策略,确保获取到的连接是可用的。 2. **连接池初始化和最大...

    jdbc数据库连接池

    1. C3P0:一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。 2. DBCP(Apache Commons DBCP):Apache提供的数据库连接池,基于Jakarta-pool实现。 3. HikariCP:性能极高的连接池...

    JDBC连接池BoneCP_Demo

    BoneCP_Demo 是一个示例项目,展示了如何在Java应用中集成并使用BoneCP连接池进行数据库操作。通过理解和实践这个Demo,开发者可以更好地理解JDBC连接池的工作原理,以及如何利用BoneCP提升数据库操作的性能和效率...

    spring声明式事务管理+jdbc+连接池

    spring声明式事务管理+jdbc+连接池 包内为代码,下载可直接执行。 一直用s2sh,感觉hibernate不好用,所以写了一个spring声明式事务管理+jdbc+连接池。

Global site tag (gtag.js) - Google Analytics