zoukankan      html  css  js  c++  java
  • 多节点连接池设计想法

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

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

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

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

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

    访问Beetlex的Github
  • 相关阅读:
    MySQL学习笔记
    为什么使用多态?实现多态的有哪些方式
    C++中派生类使用基类成员的问题
    实现Modbus ASCII多主站应用
    PHP第四天 函数引用传值
    Webpack 快速上手(下)
    Java---23种设计模式(九)------组合模式
    【笔记】Linux就该这么学-第六课第四章
    Node.js HTTPS
    Node.js Smalloc
  • 原文地址:https://www.cnblogs.com/smark/p/2651483.html
Copyright © 2011-2022 走看看