多节点连接池设计想法

    如果不是编写网络通讯应用相信对连接池接触比较少,其实我们是经常用到的特别是使用ado.net访问数据库的时候,默认情况就开启了连接池功能.连接池的主要功能是对N个连接循还复用,而不是每次使用都创建一个次的连接,通过减少连接创建达到一个更好性能的网络吞吐处理.

    在ado.net使用的连接池都是针对一台服务器,但在有些情况下应用相对比较复杂,逻辑分布在几台服务器上,而WEB分布调用这几个逻辑服务器应用.

以上这情况如果连接池只针对单一服务器的情况,这时候web维护不同服务器的连接池就变得比较麻烦多了;如节点轮循调用,如果一个节点有异常,还要放弃异常节点轮循;服务器恢复正常后还要把节点归队等一系列的问题都要在调用层考虑.为了方便地应付以上问题,所以在beetle里添加一个多节点的连接池,用于处理这情况.

当某个节的的Socket出现网络异常的时候,可以断定为引节点有问题,池在轮循的过程根据节状态来确认是否放弃些节点轮循.对于节点恢复池可以在指定间隔时间后对节点进行检查,如果能正常连接则恢复节点.

以上是大概设计思路,代码也只是完成部分,如果有这方面经验或兴趣的朋友不防提一下一个自己的意见和想法.

转载于:https://www.cnblogs.com/smark/archive/2012/08/22/2651483.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值