概述
在分布式系统中,分布在不同主机上的节点需要检测其他节点的状态。一般而言,客户端主动向服务器发送心跳包,因为服务器向客户端发送心跳包会影像服务器性能。
心跳机制实现的两种方式:
一种是基于TCP自带的心跳包
另一种是在应用层自己进行实现:
client使用定时器,不断发送心跳
Server收到心跳后,回复一个包
Server为每个client启动超时定时器,如果在指定时间内没有收到client的心跳包,则client失效。
服务端需要同时处理上上千甚至上万的客户端的连接,所以每个连接资源都是很宝贵的,当客户端断开连接的时候服务端应该及时移出该连接。
正常情况下,客户端断开连接的时候,会和服务端进行四次挥手,服务端就知道这个连接已经不能用了优雅的退出监听消息。但是总会有意外,比如客户端忽然断网了,没电了,这个时候客户端肯定不可能按照流程和服务端进行挥手,不知道消息的服务端还傻傻的在那等着,不知道客户端早就走了。
这时候,心跳包就很完美的解决了此问题。客户端和服务端约定好了每隔一段时间就会发消息,如果服务端每过一段时间没有收到客户端的心跳消息就说明客户端出事了,服务端就删除此连接,确保资源最大化。
最后
以上就是标致芝麻为你收集整理的心跳机制(待总结)的全部内容,希望文章能够帮你解决心跳机制(待总结)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复