概述
什么是心跳机制?
发送方按照一定规则(周期性发送、空闲发送等等)向接收方发送固定格式的消息,接受方收到消息后回复一个固定格式的消息,如果长时间没有收到,比如心跳周期的3倍,则认为当前连接失效,将其断开。
注:发送方可以是客户端或者服务端,根据实际情况而定,常见是客户端作为发送方。
应用场景
判断长连接是否存活:当长连接没有流量时,无法判断是通信异常引起还是通信正常没有业务流量引起,通过发送心跳包进行判断。
实现技术
方式一:应用层实现心跳机制(推荐)
优点:实现策略灵活,能及时检测到连接状态;
缺点:每个应用都需要有一套,无法底层共用;
方式二:利用TCP的KeepAlive机制
TCP协议本身提供了心跳机制,需要通过SO_KEEPALIVE开启。默认情况下,当连接空闲2小时后,每隔75s发送一次心跳包,如果连续9次没有收到响应则关闭连接。
优点:不需要二次开发,简单配置参数即可;
缺点:网络环境的复杂性使得KeepAlive机制容易失效;
最后
以上就是鲤鱼太阳为你收集整理的心跳机制详解的全部内容,希望文章能够帮你解决心跳机制详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复