[发明专利]一种基于租约的心跳协议方法和设备有效
申请号: | 201610105054.3 | 申请日: | 2016-02-25 |
公开(公告)号: | CN107124324B | 公开(公告)日: | 2020-09-01 |
发明(设计)人: | 唐治洋;卢毅军;陶云峰;朱云锋 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | H04L12/26 | 分类号: | H04L12/26;H04L12/24 |
代理公司: | 上海百一领御专利代理事务所(普通合伙) 31243 | 代理人: | 陈贞健;周建华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 租约 心跳 协议 方法 设备 | ||
本申请的目的是提供一种基于租约的心跳协议方法和设备,通过在租约期内向服务设备发送心跳请求,并接收来自服务设备的心跳请求响应;当所述心跳请求响应为异常,则基于逆向指数退避算法确定重试发送间隔时间,并在所述重试发送间隔时间后再次向所述服务设备发送重试心跳请求,直至租约过期或相应所述心跳请求响应为正常,使得在重试心跳请求的初期,相邻两个重试心跳请求之间能够以较大的发送间隔时间进行发送,从而减少了心跳请求对网络节点和服务设备的冲击压力,在重试心跳请求的晚期,重试心跳请求的发送间隔时间缩小,使得重发心跳请求能够以更高的频率发送,从而有效地提高从网络故障中恢复的成功概率,同时保证了网络的稳定性和减少网络压力。
技术领域
本申请涉及计算机领域,尤其涉及一种基于租约的心跳协议的技术。
背景技术
在分布式锁服务系统中,一种粗粒度的互斥机制能保证在同一时间只有一个客户端能占有锁,其中,锁的实现依赖于基于租约的会话维持机制,该会话维持机制能确保当会话超时后,客户端先于服务端感知到。一般地,客户端感知到超时后会通知应用层分布式锁丢失,服务端感知到超时后会将原来的锁释放以供其他客户端抢占。
上述会话的维持主要依靠客户端与服务端的心跳。在设计心跳协议时,首要目标是保证在出现网络隔离或服务器宕机等不可快速自动恢复的情形下,客户端的会话超时先于服务端,这样能够保证锁服务的正确性;其次,在网络抖动或故障切换(failover)等系统能快速自动恢复的情形下,客户端尽可能少的向应用程序报告丢锁的事件,能够保证系统的稳定性。
现有技术中,分布式系统中的可靠协调系统(例如Zookeeper)中的心跳采用了发送和接收相互独立的设计。当服务端(Server,服务设备)和客户端(Client,客户设备)之间的会话建立之后,客户端保持固定的发送间隔(默认是1/3的会话租期)向服务端发送心跳请求,当前心跳请求的发送只由时间间隔驱动,不依赖于前一个心跳的响应是否到达。服务端收到所述心跳请求后,只要此次会话尚未过期,则将此处会话的租期更新至未来1倍会话租期的时刻,并立即回复心跳请求响应;客户端每收到一个来自服务端的心跳请求响应,就将客户端当前的租约向后延伸至未来2/3的会话租期的时刻。如果客户端的租约过期了,分布式系统中的可靠协调系统(ZooKeeper)的客户端(Client)会直接向应用层发送一个称作会话事件(session event)的事件,以通知应用程序会话已经过期。由于分布式系统中的可靠协调系统(ZooKeeper)的心跳协议中,客户端(Client)自上一次成功收到心跳请求响应后,假如发生短暂的网络隔离,客户端(Client)有2/3会话租期的缓冲(buffer)时间用来完成心跳请求的重试,然而分布式系统中的可靠协调系统(ZooKeeper)的客户端(Client)实现只是简单的重复着固定的发送间隔的心跳请求,由于客户端(Client)缺乏合理的重试逻辑来应对各种突发的通信异常,造成发送心跳请求的不合理重试逻辑对网络节点和服务端(Server)的冲击压力大;从平均发送重试的心跳请求来看,这2/3会话租期的缓冲(buffer)时间,最多发起两次重试心跳请求,使得在发送重试心跳请求的缓冲(buffer)时间内,客户端(Client)重试的逻辑过于简单,造成应用程序可能会因为短暂的网络异常导致丢锁,增大了客户端(Client)对于网络故障的敏感度。
在现有技术中,采用分布式系统中的可靠协调系统(例如ZooKeeper)的心跳协议来维持服务端和客户端的会话,导致发送心跳请求的不合理重试逻辑对网络节点和服务端(Server)的冲击压力大,且重试的逻辑过于简单,造成应用程序可能会因为短暂的网络异常导致丢锁,加大了客户端(Client)对于网络故障的敏感度。
发明内容
本申请的目的是提供一种基于租约的心跳协议方法和设备,以解决现有技术中采用分布式系统中的可靠协调系统的心跳协议来维持服务端和客户端的会话导致发送心跳请求的不合理重试逻辑对网络节点和服务端(Server)的冲击压力大、应用程序可能会因为短暂的网络异常导致丢锁的问题,从而降低客户设备对于网络故障的敏感度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610105054.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:确定资源指标的方法和装置
- 下一篇:一种电力通信网运行安全评估方法及系统