zoukankan      html  css  js  c++  java
  • 连接心跳问题

    今天看以前经理写的项目时,发现了又 ’连接心跳 ‘  这个东西(我是菜鸟)。在网上查了查,但还不是很懂(求高手赐教,以后慢慢研究)。下边是查到自己感觉有用的东西:


    1、  心跳的作用就是检测链路是否连接,就这点功能,没其他作用了。

      不建议使用定时器(个人理解的定时器,离不开alarm,信号。),信号不容易控制,就算是单线程也容易引起race condition,何况多线程。
    可以使用当前时间除以一个间隔值,满足了即可发送心跳报文。
    或者keepalive,默认2小时,可以修改内核参数缩小心跳时间。

      心跳有益处,也有好处。益处在于能检测到网络问题,害处在于如果出现短暂性的网络波动(短暂性的,网络出现暂时性的断开,若干s后可能又好了),他可能就立马就把一个优秀的链路给断开了。

    2、能不能改变一下思路。不必测试连接。我现在这么干:
    连接池,平时连接是断的。使用时连,长时间(300秒)不用,断。
    使用中故障,归还,断。取用时重连(自愈测试)。。。。

    完全无需健康检查(心跳,算是连接池健康检查的一种)的自愈式连接池,使用效果非常好,极为可靠。
    单有一个监控线程每30秒检查一次连接池,发现哪个连接长时间未用就关闭之(如果不关闭就无法保证长时间闲置后,它到底好不好。我也不测它好不好了,关了算了,用时再开)。

    你的思路是“保通”,这太难了。
    我的思路是“保断”,这个容易。

    http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4096268

    http://blog.csdn.net/iamdesmo/article/details/7439193

    以后自己在慢慢研究  看来 我真的暂时还高不了这么高端的。

  • 相关阅读:
    1.Hello World
    1.Hello World
    1.Hello World
    32.IDEA新建MAVEN项目时速度缓慢
    31.最特殊的快捷键 Alt + Enter 介绍(新用户必看)
    HelloWorld
    mybatis要指定参数再数据库中的类型,类型要全大写
    递归函数,修改全局变量,高阶函数
    不定长参数
    函数返回值return,列表字典的拆包
  • 原文地址:https://www.cnblogs.com/gogood/p/3728396.html
Copyright © 2011-2022 走看看