• 网络编程中的心跳机制


    心跳机制

    在一些C/S结构、分布式程序中可以使用心跳来判断节点的存活状态。


    应用中的使用

    1. 从节点主动向主节点发送ping

      主节点回应pong,这也是一般的使用情况,如hadoop、spark那些系统。
    每个从节点上启动一个线程专门发送ping,采用定时器来定时检查是否应该发送下一次的ping以及上一次ping是否超时等。主节点上需要不断更新收到的来自从节点的ping的时间,用来判断是否超时。如果有N个从节点,1个主节点,则需要N+1个线程来发送信息,另外还要考虑如何接收。

    2. 主节点主动发送心跳

      主节点持有对从节点的连接的引用,可以使用两个队列来保存发送的时间等信息:

    1. 已发送ping的队列

    2. 待发送ping的队列

      每次在收到pong后将代表从节点的元素从队列1中移出,加入到队列2中。

      线程数也并不比上面的方式少。

    3. 超时

    有时候由于网络阻塞等原因造成心跳超时,这种情况需要考虑设置两个超时时间,一个较短,一个较长。当较长的时间内仍无响应,则可以判定为长久连接已断开,再进行重新连接或直接删除节点连接信息。

  • 相关阅读:
    ES6 常用总结——第一章(简介、let、const)
    那些说自己逻辑好的,过来切磋下啊
    纯css3的上下左右提示框几种方法
    遮罩的几种写法
    送给HTML的初学者——H5的基本结构和标签
    H5柱状图2D小插件
    小白学习H5从入门到放弃
    layui学习笔记
    windows系统安装vue及其配置
    友情链接
  • 原文地址:https://www.cnblogs.com/makefile/p/heartbeat.html
Copyright © 2020-2023  润新知