我是靠谱客的博主 鲤鱼太阳,最近开发中收集的这篇文章主要介绍心跳机制详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

什么是心跳机制?

  发送方按照一定规则(周期性发送、空闲发送等等)向接收方发送固定格式的消息,接受方收到消息后回复一个固定格式的消息,如果长时间没有收到,比如心跳周期的3倍,则认为当前连接失效,将其断开。
注:发送方可以是客户端或者服务端,根据实际情况而定,常见是客户端作为发送方。

应用场景

  判断长连接是否存活:当长连接没有流量时,无法判断是通信异常引起还是通信正常没有业务流量引起,通过发送心跳包进行判断。

实现技术

方式一:应用层实现心跳机制(推荐)

优点:实现策略灵活,能及时检测到连接状态;
缺点:每个应用都需要有一套,无法底层共用;

方式二:利用TCP的KeepAlive机制

  TCP协议本身提供了心跳机制,需要通过SO_KEEPALIVE开启。默认情况下,当连接空闲2小时后,每隔75s发送一次心跳包,如果连续9次没有收到响应则关闭连接。
优点:不需要二次开发,简单配置参数即可;
缺点:网络环境的复杂性使得KeepAlive机制容易失效;

最后

以上就是鲤鱼太阳为你收集整理的心跳机制详解的全部内容,希望文章能够帮你解决心跳机制详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部