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集成;若不支持,是否可方便地修改源码来支持?
分享到:
相关推荐
此类非常简单,免去了网上众多资料里所说的麻烦的tomcat配置,更强的是它可以通用!不仅oracle,mysql,sqlserver2000都行,因为它依据的是你自己...当然首先你要保证你拥有一个能连接自己数据库的对应驱动类。如下面以
Tongweb5中配置JDBC连接池的文档。Web应用通过JNDI获取Tongweb配置的JDBC数据源(连接池
jdbc数据库连接池,方便连接数据库,优化数据库连接速度。
spring声明式事务管理+jdbc+连接池 包内为代码,下载可直接执行。 一直用s2sh,感觉hibernate不好用,所以写了一个spring声明式事务管理+jdbc+连接池。
在Java语言中,JDBC(Java DataBase Connection)是应用程序与数据库沟通的桥梁
关于jdbc连接池连接数据库的原理
一款小型JDBC连接池组件,具有性能高,代码轻,稳定好的特点。 一款小型JDBC连接池组件,具有性能高,代码轻,稳定好的特点。 一款小型JDBC连接池组件,具有性能高,代码轻,稳定好的特点。 一款小型JDBC连接...
jdbc连接池代码详解
JDBC - Java 连接Mysql JDBC连接池使用工具 C3P0 连接池 and druid-1.0.9
jdbc连接池属性介绍,
java jdbc 连接池实例 项目只要配数据源就可以直接启用, 也可以整合到你个项目里面, 可oracle、mysql、sqlserver自由切换方言。
包括JDBC连接池的相关代码和xml配置文件。
CH07MySQL连接器JDBC和连接池.ppt
Java连接池 JDBC连接池(通用basedao)可直接用的模板
java实现JDBC数据库连接池的原理,里面有oracle驱动jar包,以及代码的阅读步骤
Jdbc连接池 以往Tomcat5.0的连接池配置是在http://localhost:8080/admin/下进行的非常方便,可是5.0以后的版本里面Tomcat就没有把admin集成到程序中了。Tomcat5.5的admin可以在apache官方网站上下到,也可以通过...
java_jdbc数据库连接池总结 有讲原理,不错
JDBC数据库连接池的简单实现.rar
自定义的JDBC连接池,支持并发访问,可维持多个数据库的连接池
这是我写的一个对JDBC连接池的实现,高手见了可不要笑啊!!!! 程序是在linux下用Eclipse下编写的. 用Jude进行建模,数据库使用了mysql. 程序自带了MySql的Connection连接驱动类,你也可以使用别的驱动类和数据库, 在src/...