lbpool:一个支持负载均衡的JDBC连接缓冲池
2007-11-18 01:31
405 查看
lbpool是根据MySQL的复制机制设计的支持负 载均衡的JDBC连接缓冲池。一般来说,MySQL复制机制涉及一台主服务器(master server)和多台复制服务器(slave server),数据库写操作只发生在主服务器上,而读操作则可以分布到主服务器及其他复制服务器。
虽然lbpool是为MySQL设计的,但也可以方便地扩展到其他支持复制功能的数据库系统,如PostgreSQL等。
是否可访问;
复制是否依然在进行;
复制是否已经落后主服务器;
负载是否太高;
数据库连接数是否太多。
如果所有服务器都断线,则系统在一段时间内会阻塞数据库查询,避免马上抛出SQLException,当某台机器在线后,则数据库查询马上恢复正常;
如果某台服务器断线,或复制服务器与主服务器断开或滞后很长时间,则原有连接会被切换到其他服务器,而且并不影响正在进行过程的查询;
复制服务器信息配置在主服务器上,支持动态配置,因此可以方便地增加、删除或维护复制服务器。
而我公司在做的网站监测项目YouMonitor.Us也是采用Hibernate做数据持久层的,我们目前采用C3P0缓冲池,但C3P0不支持在主服务器、及多个复制服务器间分布查询操作。
因此,JDBC连接缓冲池与Hibernate的集成性显得特别重要。目前不能确定lbpool是否可以与Hibernate集成;若不支持,是否可方便地修改源码来支持?
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
虽然lbpool是为MySQL设计的,但也可以方便地扩展到其他支持复制功能的数据库系统,如PostgreSQL等。
负载均衡策略
负载均衡算法主要基于并发连接数,负载和slave的状态等参数来选择合适的服务器:是否可访问;
复制是否依然在进行;
复制是否已经落后主服务器;
负载是否太高;
数据库连接数是否太多。
一些有用的特性
实时重负载均衡:即当客户端断开,或某服务器断线或重新在线后,系统会对现有数据库连接进行重分配以达到动态的负载平衡;如果所有服务器都断线,则系统在一段时间内会阻塞数据库查询,避免马上抛出SQLException,当某台机器在线后,则数据库查询马上恢复正常;
如果某台服务器断线,或复制服务器与主服务器断开或滞后很长时间,则原有连接会被切换到其他服务器,而且并不影响正在进行过程的查询;
复制服务器信息配置在主服务器上,支持动态配置,因此可以方便地增加、删除或维护复制服务器。
可与Hibernate的集成?
目前很多系统都采用Hibernate做持久层,而Hibernate支持C3P0, DBCP等JDBC数据库连接缓冲池。而我公司在做的网站监测项目YouMonitor.Us也是采用Hibernate做数据持久层的,我们目前采用C3P0缓冲池,但C3P0不支持在主服务器、及多个复制服务器间分布查询操作。
因此,JDBC连接缓冲池与Hibernate的集成性显得特别重要。目前不能确定lbpool是否可以与Hibernate集成;若不支持,是否可方便地修改源码来支持?
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
相关文章推荐
- lbpool:一个支持负载均衡的JDBC连接缓冲池
- 蛙蛙推荐:作一个支持过载自适应和动态扩容的负载均衡服务
- 蛙蛙推荐:作一个支持过载自适应和动态扩容的负载均衡服务
- 配置haproxy支持使用多个lan内网ip做负载均衡以突破haproxy机只支持64k连接(突破单ip 65535端口限制)
- JDBC连接的一个小例子
- 负载均衡总结,Nginx负载均衡的4种方式 :轮询-Round Robin 、Ip地址-ip_hash、最少连接-least_conn、加权-weight=n
- oracle连接驱动jdbc的一个bug
- Docker的安装和镜像管理并利用Docker容器实现nginx的负载均衡、动静分离 Docker的安装 一、Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用
- 代码调用DruidDataSource来管理conn连接,同时声明了ThreadLocal对象来保存每次线程请求所获取的连接,这样可以避免每个new一个JDBC
- Nginx的负载均衡 - 最少连接 (least_conn)
- 如何在Linux实现一个网卡配置多个IP地址与多个网卡的负载均衡和冗余
- 解决无法停用网卡,出现“此时无法停用连接。这个连接可能在用一个或多个不支持即插即用的协议”错误提示
- cisco路由器负载均衡的一个小发现
- jdbc链接mysql的第二个例子。使用properties文件存放连接信息。使用jar文件一个
- 这里有Amoeba支持驱动的说明不知道怎么样。Amoeba for mysql 0.14发布(读写分离、负载均衡...
- mysql 一个被误导的错误: mysql jdbc连接,数据库ip变成了本地ip?
- 一个JDBC连接数据库的例子
- 【Java编程】建立一个简单的JDBC连接-Drivers, Connection, Statement and PreparedStatement
- 负载均衡之DNS域名解析,实现一个域名对应多个IP地址