• 网络编程中的心跳机制


    心跳机制

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


    应用中的使用

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

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

    2. 主节点主动发送心跳

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

    1. 已发送ping的队列

    2. 待发送ping的队列

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

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

    3. 超时

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

  • 相关阅读:
    杭电2063 过山车 匈牙利算法
    杭电2023 平均成绩
    leveldb性能分析
    linux下libreoffice安装测试
    iptables配置vsftp访问
    vsftp访问异常
    mysql二进制安装
    vi命令
    mysql配置优化
    rsync 配置
  • 原文地址:https://www.cnblogs.com/makefile/p/heartbeat.html
Copyright © 2020-2023  润新知