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集成;若不支持,是否可方便地修改源码来支持?


  width="520" scrolling="no" height="60" frameborder="0" align="middle" marginwidth="0" marginheight="0" src="http://steveyang.00bp.com/ads480.html"> <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> </script> <script type="text/javascript"> _uacct = "UA-2977865-5"; urchinTracker(); </script>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值