CN112394886B - 客户端心跳续约与过期检测方法、装置及计算机可读介质 - Google Patents
客户端心跳续约与过期检测方法、装置及计算机可读介质 Download PDFInfo
- Publication number
- CN112394886B CN112394886B CN202110078908.4A CN202110078908A CN112394886B CN 112394886 B CN112394886 B CN 112394886B CN 202110078908 A CN202110078908 A CN 202110078908A CN 112394886 B CN112394886 B CN 112394886B
- Authority
- CN
- China
- Prior art keywords
- heartbeat
- time slot
- time
- overdue
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种客户端心跳续约与过期检测方法、装置及计算机可读介质,其中方法包括:设置时间轮的时间槽宽度和任务调度周期,划分出预设数量的时间槽;心跳服务器将各客户端续约产生的心跳记录更新存储到对应时间槽的存储节点中以进行客户端保活;计算当前心跳检测时间对应的时间槽,并对计算的时间槽对应的存储节点中的各心跳记录进行过期心跳检测,并读取出过期心跳;对读取出的过期心跳对应的客户端进行下线处理,并清除过期心跳。本发明通过时间轮算法对客户端进行心跳保活和过期检测,在客户端数量大幅增加时,能够确保读写压力的负载均衡,同时避免了常规的心跳方案批量删除过期心跳存在的长事务容易影响服务端其他业务的问题。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种客户端心跳续约与过期检测方法、装置及计算机可读介质。
背景技术
当客户端处于在线状态时,服务端需要为该客户端预留分配一定的资源,并需要记录一些状态,比如session(会话控制)、websocket连接、客户端登录状态等。当客户端由于网络原因或者其他原因非主动登出已经不再活跃时,需要对客户端进行状态过期检测后,及时下线状态过期的客户端,以释放预分配的资源。
目前多采用心跳方案对客户端进行保活和过期检测。常规的心跳方案包括心跳续约和过期检测两项内容。心跳续约指客户端每间隔一段时间向外发送心跳,表明自己还存活。过期检测则是对客户端状态是否过期进行检测,心跳方案中,判断客户端状态是否过期的常规方法为:当长时间未收到客户端的心跳,则判定客户端当前为下线状态。
心跳方案通过心跳服务器为客户端提供心跳保活服务。心跳服务器将客户端续约产生的心跳记录更新存储到存储模块中,每次续约,心跳服务器都直接修改这条记录的更新时间,以对客户端进行心跳保活。服务端则定时批量查询最后更新的心跳记录,检测出过期心跳,然后将过期心跳对应的客户端进行下线处理,并删除过期心跳。
常规的心跳方案主要存在以下两个问题:
一是未考虑分布式应用场景,当客户端数量大幅增加时,无法较好地实现读写压力的负载均衡,导致无法对客户端数量进行很好地扩容;
二是服务端定期删除过期心跳的操作属于批量的长事务,容易导致同步阻塞,影响服务端的其他业务。
发明内容
本发明提供了一种客户端心跳续约与过期检测方法,通过时间轮算法对客户端进行心跳保活和过期检测,在客户端数量大幅增加时,能够确保读写压力的负载均衡,为客户端扩容提供了条件,同时避免了常规的心跳方案批量删除过期心跳存在的长事务容易影响服务端其他业务的问题。
为达此目的,本发明采用以下技术方案:
提供一种客户端心跳续约与过期检测方法,具体步骤包括:
1)设置时间轮的时间槽宽度和任务调度周期,划分出预设数量的时间槽;
2)心跳服务器将各客户端续约产生的心跳记录更新存储到对应时间槽的存储节点中以进行客户端保活;
3)计算当前心跳检测时间对应的时间槽,并对计算的所述时间槽对应的存储节点中的各所述心跳记录进行过期心跳检测,并读取出过期心跳;
4)对读取出的所述过期心跳对应的所述客户端进行下线处理,并清除所述过期心跳。
作为本发明的一种优选方案,步骤2)中,所述存储节点为关系型数据库或非关系型数据库,或由物理存储器提供。
作为本发明的一种优选方案,步骤2)中,所述心跳服务器更新存储所述心跳记录的步骤具体包括:
2.1)在当前续约时间根据心跳的续约时长计算心跳的续约过期时间;
2.2)计算所述续约过期时间对应的所述时间槽;
2.3)将续约产生的所述心跳记录更新存储到所述步骤2.2)计算的所述时间槽对应的所述存储节点中,并删除上一次续约存储的所述心跳记录。
作为本发明的一种优选方案,步骤3)中,所述心跳服务器检测过期心跳的具体步骤包括:
3.1)计算当前心跳检测时间对应的所述时间槽;
3.2)对存储在当前心跳检测时间对应的时间槽存储节点中的各所述心跳记录进行过期心跳检测,并读取出所述过期心跳;
3.3)按照预设的时间间隔,重复所述步骤3.1)-3.2),对存储在每个时间槽存储节点中的所述心跳记录进行过期心跳检测。
作为本发明的一种优选方案,步骤3.3)中预设的所述时间间隔为所述时间槽的宽度。
作为本发明的一种优选方案,所述心跳记录的数据类型包括集合、哈希表、链表中的任意一种或多种。
本发明还提供了一种客户端心跳续约与过期检测装置,所述装置包括:
任务调度周期设置模块,用于提供给用户设置时间轮的任务调度周期;
时间槽宽度设置模块,用于提供给所述用户设置所述时间轮的时间槽宽度;
时间槽划分模块,分别连接所述任务调度周期设置模块和所述时间槽宽度设置模块,用于根据设置的所述任务调度周期和所述时间槽宽度,将所述时间轮划分为若干个时间槽;
存储模块,用于为心跳服务器提供心跳记录存储节点;
时间槽存储节点分配模块,分别连接所述时间槽划分模块和所述存储模块,用于为每个所述时间槽分配对应的心跳记录存储节点;
心跳记录更新存储模块,连接所述存储模块,用于根据所述心跳服务器的更新存储指令,将各所述客户端续约产生的心跳记录更新存储到对应的时间槽存储节点中;
过期心跳检测模块,连接所述存储模块,用于根据所述心跳服务器的过期心跳检测指令,对存储在对应的时间槽存储节点中的各所述心跳记录进行过期心跳检测;
过期心跳读取模块,连接所述过期心跳检测模块,用于读取出检测到的过期心跳记录;
客户端下线及过期心跳清除模块,分别连接所述过期心跳读取模块和所述存储模块,用于根据接收到的下线指令对读取到的过期心跳对应的所述客户端进行下线处理,并用于根据接收到的过期心跳清除指令,清除所述过期心跳。
作为本发明的一种优选方案,所述心跳记录更新存储模块中具体包括:
心跳续约时长读取单元,用于读取续约心跳中记录的心跳续约时长;
续约过期时间计算单元,连接所述心跳续约时长读取单元,用于在当前续约时间根据续约心跳的所述续约时长计算续约心跳的续约过期时间;
心跳续约时间槽计算单元,连接所述续约过期时间计算单元,用于计算所述续约过期时间对应的所述时间槽;
心跳记录更新存储单元,连接所述心跳续约时间槽计算单元,用于将续约产生的所述心跳记录更新存储到所述续约过期时间对应的时间槽存储节点中;
心跳记录删除单元,用于在完成心跳续约后删除上一次续约存储的所述心跳记录。
作为本发明的一种优选方案,所述过期心跳检测模块中具体包括:
时间间隔设置单元,用于设置过期心跳检测的间隔时间;
心跳检测时间槽计算单元,用于计算当前心跳检测时间对应的所述时间槽;
过期心跳检测单元,分别连接所述时间间隔设置单元和所述心跳检测时间槽计算单元,用于按照预设的时间间隔,对存储在每个时间槽存储节点中的心跳记录进行过期心跳检测。
作为本发明的一种优选方案,所述间隔时间为所述时间槽的宽度。
本发明还提供了一种计算机可读存储介质,包括执行指令,当电子设备的处理器执行所述执行指令时,所述处理器执行所述的客户端心跳续约与过期检测方法。
本发明相比常规的心跳方案具有以下几个有益效果:
1、为每个时间槽分配对应的存储节点,并将具有不同心跳周期的心跳记录存储在对应的时间槽存储节点中,实现了数据读写的负载均衡,有利于提升心跳服务的单机性能;
2、心跳服务器单次仅对一个时间槽存储节点进行过期心跳检测,检测量大幅降低,有利于提升心跳过期检测的实时性能;
3、心跳服务器以时间槽宽度为过期心跳检测的时间间隔,心跳过期检测的最大延迟时间为一个时间槽宽度,进一步确保了心跳过期检测的实时性;
4、在客户端数量大幅增加时,能够通过添加底层的存储器,并通过时间轮算法为各个客户端提供心跳服务来应对业务的倍速上涨,较好地解决了现有的心跳方案难以扩容客户端的技术问题;
5、将批量的心跳删除缩减为对一个时间槽存储节点进行心跳删除,避免了长事务导致的各种问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的客户端心跳续约与过期检测方法的步骤图;
图2是本发明一实施例提供的所述心跳服务器更新存储所述心跳记录的方法步骤图;
图3是本发明一实施例提供的所述心跳服务器检测过期心跳的方法步骤图;
图4是本发明一实施例提供的客户端心跳续约与过期检测装置的结构示意图;
图5是所述客户端心跳续约与过期检测装置中的所述心跳记录更新存储模块的内部结构示意图;
图6是所述客户端心跳续约与过期检测装置中的所述过期心跳检测模块的内部结构示意图;
图7是所述心跳服务器进行心跳续约的时序图;
图8是所述心跳服务器进行过期心跳检测及清除过期心跳的时序图;
图9是所述时间轮与设置在所述时间轮上的所述时间槽的示意图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若出现术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
在本发明的描述中,除非另有明确的规定和限定,若出现术语“连接”等指示部件之间的连接关系,该术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个部件内部的连通或两个部件的相互作用关系。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
图1示出了本发明一实施例提供的客户端心跳续约与过期检测的方法步骤图,如图1所示,该客户端心跳续约与过期检测的方法具体包括:
步骤1),设置时间轮的时间槽宽度和任务调度周期,划分出预设数量的时间槽;时间轮是一种高效利用线程资源来进行批量化调度的一种调度模型,其把大批量的调度任务全部都绑定到同一个调度器上面,使用一个调度器来进行所有任务的管理、触发以及运行,能够高效管理各种延时任务、周期任务、通知任务等。时间轮解决了以往大量的调度任务分别单独使用一个调度器来管理任务的生命周期浪费CPU资源的问题。关于时间轮和设置在时间轮上的时间槽的示意图请参照图9。本发明实施例划分时间槽的方法为,首先确定时间轮的任务调度周期(periodValue)和时间槽(timeSlot)的宽度,假设任务调度周期为1小时,每个时间槽的宽度为10秒,那么就可划分出360个时间槽来存储这一个小时内的心跳数据。本发明为每个时间槽分配了对应的存储节点(该存储节点由物理存储器提供或者为关系型数据库、非关系型数据库等数据库),不同心跳周期的心跳记录可存储在同一个时间槽对应的存储节点(以下将时间槽对应的存储节点简称为“时间槽存储节点”)中。
步骤2)心跳服务器将各客户端续约产生的心跳记录更新存储到对应时间槽的存储节点中以进行客户端保活;图2示出了心跳服务器更新存储心跳记录的方法步骤图,图7示出了心跳服务器进行心跳续约的时序图,如图2和图7所示,心跳服务器更新存储心跳记录的方法具体包括:
步骤2.1)在当前续约时间根据心跳的续约时长计算心跳的续约过期时间;比如当前续约时间为t1,本次心跳的续约时长为持续10秒,则本次续约的心跳的过期时间为t1+10;
步骤2.2)计算续约过期时间对应的时间槽;如图9所示,比如当前续约时间t1对应的时间槽为图9中的时间槽1,假设续约时长为10秒(等于时间槽的宽度),那么续约过期时间t1+10对应的时间槽为图9中的时间槽2;
步骤2.3)将续约产生的心跳记录更新存储到步骤2.2)计算的时间槽对应的存储节点中,并删除上一次续约存储的心跳记录;比如步骤2.2)计算的时间槽为图9中的时间槽2,该时间槽2对应的存储节点为图9中的存储节点B,那么心跳服务器将本次续约产生的心跳记录更新存储到存储节点B处,然后从时间槽1对应的存储节点A处删除上一次续约存储的心跳记录。
为了降低删除或添加心跳记录的时间复杂度,续约产生的心跳记录的数据类型包括但不限于集合、哈希表或链表。存储节点则采用与心跳记录数据类型适配的存储节点,以满足心跳记录的存储条件。
请继续参照图1,客户端心跳续约与过期检测方法还包括:
步骤3)心跳服务器计算当前心跳检测时间对应的时间槽,并对计算的时间槽对应的存储节点中的各心跳记录进行过期心跳检测,并读取出过期心跳;图3示出了心跳服务器检测过期心跳的方法步骤图,图8示出了心跳服务器进行过期心跳检测及清除过期心跳的时序图,如图3和图8所示,心跳服务器检测过期心跳的具体方法包括:
步骤3.1)计算当前心跳检测时间对应的时间槽;具体计算方法为,把时间轮类比为时钟转动,时针跳动一次转动一个时间槽宽度,通过对时针跳动次数的累计,可计算出当前心跳检测时间对应的时间槽;
步骤3.2)对存储在当前心跳检测时间对应的时间槽存储节点中的各心跳记录进行过期心跳检测,并读取出过期心跳;过期心跳的具体检测方法有许多,比如可以通过判断心跳周期是否已满来检测出过期心跳,心跳周期已满的心跳将被视为过期心跳;也可以根据心跳续约时间来判断心跳是否过期,比如前一次心跳续约时间为t0,续约时长为10秒,那么本次续约的最迟时间为t0+10,但如果在t0+10的续约时间点心跳服务器还未收到客户端的续约心跳,则判定t0时刻存储的心跳记录为过期心跳;
步骤3.3)按照预设的时间间隔,重复步骤3.1)-3.2,对存储在每个时间槽存储节点中的心跳记录进行过期心跳检测。
为了确保按序对每个时间槽存储节点中的心跳记录进行过期心跳检测,步骤3.3)中预设的时间间隔为时间槽的宽度。
步骤4)对读取出的过期心跳对应的客户端进行下线处理,并清除过期心跳。
简而言之,上述的过期心跳检测方法为:在心跳服务器内部维护一个时钟线程,其需要对过期心跳进行及时检测与清除。随着时间的推进(按照时间轮的轮动时间轴推进),时钟线程只需要将当前心跳检测时间对应的时间槽存储节点中的过期心跳全部检测并读取出来,然后对过期心跳对应的客户端进行下线处理,并将过期心跳从时间槽存储节点中删除即可。
综上,本发明相比现有的心跳方案具有以下几个有益效果:
1、为每个时间槽分配对应的存储节点,并将具有不同心跳周期的心跳记录存储在对应的时间槽存储节点中,实现了数据读写的负载均衡,有利于提升心跳服务的单机性能;
2、心跳服务器单次仅对一个时间槽存储节点进行过期心跳检测,检测量大幅降低,有利于提升心跳过期检测的实时性能;
3、心跳服务器以时间槽宽度为过期心跳检测的时间间隔,心跳过期检测的最大延迟时间为一个时间槽宽度,进一步确保了心跳过期检测的实时性;
4、在客户端数量大幅增加时,能够通过添加底层的存储器,并通过时间轮算法为各个客户端提供心跳服务来应对业务的倍速上涨,较好地解决了现有的心跳方案客户端扩容难的技术问题;
5、将批量的心跳删除缩减为对一个时间槽存储节点进行心跳删除,避免了长事务导致的各种问题。
本发明一实施例还提供了一种客户端心跳续约与过期检测装置,如图4所示,该装置包括:
任务调度周期设置模块,用于提供给用户设置时间轮的任务调度周期;
时间槽宽度设置模块,用于提供给所述用户设置时间轮的时间槽宽度;
时间槽划分模块,分别连接任务调度周期设置模块和时间槽宽度设置模块,用于根据设置的任务调度周期和时间槽宽度,将时间轮划分为若干个时间槽;时间槽划分方法在上述的客户端心跳续约与过期检测方法中已作了阐述,在此不再赘述;
存储模块,用于为心跳服务器提供心跳记录存储节点;存储模块可以为物理存储器,也可以是关系型或非关系型数据库;
时间槽存储节点分配模块,分别连接时间槽划分模块和存储模块,用于为每个时间槽分配对应的心跳记录存储节点;
心跳记录更新存储模块,连接存储模块,用于根据心跳服务器的更新存储指令,将各客户端续约产生的心跳记录更新存储到对应的时间槽存储节点中;心跳记录的更新存储方法在上述的客户端心跳续约与过期检测方法中作了具体阐述,在此不再赘述;
过期心跳检测模块,连接存储模块,用于根据心跳服务器的过期心跳检测指令,对存储在当前心跳检测时间对应的时间槽存储节点中的各心跳记录进行过期心跳检测;同样地,过期心跳检测的具体方法在上述的客户端心跳续约与过期检测方法中作了阐述,在此不再赘述;
过期心跳读取模块,连接过期心跳检测模块,用于读取出检测到的过期心跳记录;
客户端下线及过期心跳清除模块,分别连接过期心跳读取模块和存储模块,用于根据接收到的下线指令对读取到的过期心跳对应的客户端进行下线处理,并用于根据接收到的过期心跳清除指令,清除过期心跳。下线指令和过期心跳清除指令可以由服务端生成并发送,也可以由心跳服务器生成并发送。
具体地,如图5所示,心跳记录更新存储模块中包括:
心跳续约时长读取单元,用于读取续约心跳中记录的心跳续约时长;
续约过期时间计算单元,连接心跳续约时长读取单元,用于在当前续约时间根据续约心跳的续约时长计算续约心跳的续约过期时间;续约过期时间的计算方法在上述的客户端心跳续约与过期检测方法中作了阐述,在此不再赘述;
心跳续约时间槽计算单元,连接续约过期时间计算单元,用于计算续约过期时间对应的所述时间槽;续约过期时间对应的时间槽计算方法在上述的客户端心跳续约与过期检测方法中作了阐述,在此不再赘述;
心跳记录更新存储单元,连接心跳续约时间槽计算单元,用于将续约产生的心跳记录更新存储到该续约过期时间对应的时间槽存储节点中;
心跳记录删除单元,用于在完成心跳续约后删除上一次续约存储的心跳记录。
具体地,如图6所示,过期心跳检测模块中包括:
时间间隔设置单元,用于提供给用户设置过期心跳检测的间隔时间;
心跳检测时间槽计算单元,用于计算当前心跳检测时间对应的时间槽;
过期心跳检测单元,分别连接时间间隔设置单元和心跳检测时间槽计算单元,用于按照预设的时间间隔,对存储在每个时间槽存储节点中的心跳记录进行过期心跳检测。为了确保按序对每个时间槽存储节点进行过期心跳检测,间隔时间优选设置为时间槽的宽度。
本发明还提供了一种计算机可读存储介质,包括执行指令,当电子设备的处理器执行该执行指令时,处理器执行上述的客户端心跳续约与过期检测方法。
需要声明的是,上述具体实施方式仅仅为本发明的较佳实施例及所运用技术原理。本领域技术人员应该明白,还可以对本发明做各种修改、等同替换、变化等等。但是,这些变换只要未背离本发明的精神,都应在本发明的保护范围之内。另外,本申请说明书和权利要求书所使用的一些术语并不是限制,仅仅是为了便于描述。
Claims (11)
1.一种客户端心跳续约与过期检测方法,其特征在于,具体步骤包括:
1)设置时间轮的时间槽宽度和任务调度周期,划分出预设数量的时间槽;
2)心跳服务器将各客户端续约产生的心跳记录更新存储到对应时间槽的存储节点中以进行客户端保活;
3)计算当前心跳检测时间对应的时间槽,并对计算的所述时间槽对应的存储节点中的各所述心跳记录进行过期心跳检测,并读取出过期心跳;
4)对读取出的所述过期心跳对应的所述客户端进行下线处理,并清除所述过期心跳。
2.根据权利要求1所述的客户端心跳续约与过期检测方法,其特征在于,步骤2)中,所述存储节点为关系型数据库或非关系型数据库,或由物理存储器提供。
3.根据权利要求1所述的客户端心跳续约与过期检测方法,其特征在于,步骤2)中,所述心跳服务器更新存储所述心跳记录的步骤具体包括:
2.1)在当前续约时间根据心跳的续约时长计算心跳的续约过期时间;
2.2)计算所述续约过期时间对应的所述时间槽;
2.3)将续约产生的所述心跳记录更新存储到所述步骤2.2)计算的所述时间槽对应的所述存储节点中,并删除上一次续约存储的所述心跳记录。
4.根据权利要求1所述的客户端心跳续约与过期检测方法,其特征在于,步骤3)中,所述心跳服务器检测过期心跳的具体步骤包括:
3.1)计算当前心跳检测时间对应的所述时间槽;
3.2)对存储在当前心跳检测时间对应的时间槽存储节点中的各所述心跳记录进行过期心跳检测,并读取出所述过期心跳;
3.3)按照预设的时间间隔,重复所述步骤3.1)-3.2),对存储在每个时间槽存储节点中的所述心跳记录进行过期心跳检测。
5.根据权利要求4所述的客户端心跳续约与过期检测方法,其特征在于,步骤3.3)中预设的所述时间间隔为所述时间槽的宽度。
6.根据权利要求1所述的客户端心跳续约与过期检测方法,其特征在于,所述心跳记录的数据类型包括集合、哈希表、链表中的任意一种或多种。
7.一种客户端心跳续约与过期检测装置,其特征在于,所述装置包括:
任务调度周期设置模块,用于提供给用户设置时间轮的任务调度周期;
时间槽宽度设置模块,用于提供给所述用户设置所述时间轮的时间槽宽度;
时间槽划分模块,分别连接所述任务调度周期设置模块和所述时间槽宽度设置模块,用于根据设置的所述任务调度周期和所述时间槽宽度,将所述时间轮划分为若干个时间槽;
存储模块,用于为心跳服务器提供心跳记录存储节点;
时间槽存储节点分配模块,分别连接所述时间槽划分模块和所述存储模块,用于为每个所述时间槽分配对应的心跳记录存储节点;
心跳记录更新存储模块,连接所述存储模块,用于根据所述心跳服务器的更新存储指令,将各所述客户端续约产生的心跳记录更新存储到对应的时间槽存储节点中;
过期心跳检测模块,连接所述存储模块,用于根据所述心跳服务器的过期心跳检测指令,对存储在对应的时间槽存储节点中的各所述心跳记录进行过期心跳检测;
过期心跳读取模块,连接所述过期心跳检测模块,用于读取出检测到的过期心跳记录;
客户端下线及过期心跳清除模块,分别连接所述过期心跳读取模块和所述存储模块,用于根据接收到的下线指令对读取到的过期心跳对应的所述客户端进行下线处理,并用于根据接收到的过期心跳清除指令,清除所述过期心跳。
8.根据权利要求7所述的客户端心跳续约与过期检测装置,其特征在于,所述心跳记录更新存储模块中具体包括:
心跳续约时长读取单元,用于读取续约心跳中记录的心跳续约时长;
续约过期时间计算单元,连接所述心跳续约时长读取单元,用于在当前续约时间根据续约心跳的所述续约时长计算续约心跳的续约过期时间;
心跳续约时间槽计算单元,连接所述续约过期时间计算单元,用于计算所述续约过期时间对应的所述时间槽;
心跳记录更新存储单元,连接所述心跳续约时间槽计算单元,用于将续约产生的所述心跳记录更新存储到所述续约过期时间对应的时间槽存储节点中;
心跳记录删除单元,用于在完成心跳续约后删除上一次续约存储的所述心跳记录。
9.根据权利要求7所述的客户端心跳续约与过期检测装置,其特征在于,所述过期心跳检测模块中具体包括:
时间间隔设置单元,用于设置过期心跳检测的间隔时间;
心跳检测时间槽计算单元,用于计算当前心跳检测时间对应的所述时间槽;
过期心跳检测单元,分别连接所述时间间隔设置单元和所述心跳检测时间槽计算单元,用于按照预设的时间间隔,对存储在每个时间槽存储节点中的心跳记录进行过期心跳检测。
10.根据权利要求9所述的客户端心跳续约与过期检测装置,其特征在于,所述间隔时间为所述时间槽的宽度。
11.一种计算机可读存储介质,包括执行指令,其特征在于,当电子设备的处理器执行所述执行指令时,所述处理器执行所述如权利要求1-6任意一项所述的客户端心跳续约与过期检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110078908.4A CN112394886B (zh) | 2021-01-21 | 2021-01-21 | 客户端心跳续约与过期检测方法、装置及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110078908.4A CN112394886B (zh) | 2021-01-21 | 2021-01-21 | 客户端心跳续约与过期检测方法、装置及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112394886A CN112394886A (zh) | 2021-02-23 |
CN112394886B true CN112394886B (zh) | 2021-04-09 |
Family
ID=74625562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110078908.4A Active CN112394886B (zh) | 2021-01-21 | 2021-01-21 | 客户端心跳续约与过期检测方法、装置及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112394886B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113497737A (zh) * | 2021-05-13 | 2021-10-12 | 曙光信息产业(北京)有限公司 | 系统拓扑结构维护方法、装置、计算机设备和存储介质 |
CN113660311A (zh) * | 2021-07-21 | 2021-11-16 | 广州心娱网络科技有限公司 | 一种用户状态更新方法、系统、电子装置及存储介质 |
CN114697377B (zh) * | 2022-04-07 | 2023-09-05 | 深信服科技股份有限公司 | 一种客户端产品的保活方法、系统、装置及可读存储介质 |
CN115550222B (zh) * | 2022-10-12 | 2024-09-06 | 云知声智能科技股份有限公司 | 设备异常状态检测方法、系统、终端及存储介质 |
CN117118876B (zh) * | 2023-10-20 | 2024-03-08 | 美云智数科技有限公司 | 心跳连接检测方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104301134A (zh) * | 2014-08-27 | 2015-01-21 | 烽火通信科技股份有限公司 | 软件设计中基于海量定时器的管理方法及系统 |
CN105979299A (zh) * | 2016-06-24 | 2016-09-28 | 武汉斗鱼网络科技有限公司 | 基于时间轮盘和播放器心跳的活跃用户集维护系统及方法 |
CN108900370A (zh) * | 2018-06-08 | 2018-11-27 | 努比亚技术有限公司 | 长连接多重超时判断方法、装置及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10499884B2 (en) * | 2012-12-06 | 2019-12-10 | White Eagle Sonic Technologies, Inc. | System and method for scanning for a second object within a first object using an adaptive scheduler |
-
2021
- 2021-01-21 CN CN202110078908.4A patent/CN112394886B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104301134A (zh) * | 2014-08-27 | 2015-01-21 | 烽火通信科技股份有限公司 | 软件设计中基于海量定时器的管理方法及系统 |
CN105979299A (zh) * | 2016-06-24 | 2016-09-28 | 武汉斗鱼网络科技有限公司 | 基于时间轮盘和播放器心跳的活跃用户集维护系统及方法 |
CN108900370A (zh) * | 2018-06-08 | 2018-11-27 | 努比亚技术有限公司 | 长连接多重超时判断方法、装置及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
心跳超时时间设置_基于时间轮片方式处理超时任务;Hu Natalie;《CSDN博客》;20210107;第1-12页 * |
时间轮片(Timing Wheel)实现心跳机制;君君要上天;《CSDN博客》;20180316;第1-2页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112394886A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112394886B (zh) | 客户端心跳续约与过期检测方法、装置及计算机可读介质 | |
CN108762924A (zh) | 一种负载均衡的方法、装置和计算机可读存储介质 | |
WO2022134233A1 (zh) | 一种区块链的共识方法、装置、服务器及存储介质 | |
CN107357896A (zh) | 数据库集群的扩容方法、装置、系统和数据库集群系统 | |
WO2016134590A1 (zh) | 处理事务的方法、处理节点、中心节点和集群 | |
KR101641005B1 (ko) | 소셜 미디어 네트워크의 예측-기반 크롤링을 위한 시스템 및 방법 | |
CN111338773A (zh) | 一种分布式定时任务调度方法、调度系统及服务器集群 | |
CN110109741B (zh) | 循环任务的管理方法、装置、电子设备及存储介质 | |
CN112513832B (zh) | 一种数据的存储方法及设备 | |
CN103581332A (zh) | HDFS架构及HDFS架构中NameNode节点的压力分解方法 | |
TWI716822B (zh) | 事務因果序的校正方法及裝置、電子設備 | |
CN108845872B (zh) | 一种用于嵌入式系统的软件定时器实现方法 | |
WO2023109806A1 (zh) | 物联网设备的活跃数据处理方法、装置及存储介质 | |
JP2017516237A (ja) | 分散データグリッドにおける分散データ構造をサポートするためのシステムおよび方法 | |
Lee et al. | An efficient delta synchronization algorithm for mobile cloud storage applications | |
CN113934547B (zh) | 一种集群环境下告警日志的记录方法、装置、设备及产品 | |
CN118400303A (zh) | 一种网络探测的方法、装置、电子设备及存储介质 | |
CN113302593A (zh) | 任务处理方法、装置、系统、电子设备及存储介质 | |
Hsu et al. | A proactive, cost-aware, optimized data replication strategy in geo-distributed cloud datastores | |
CN116455830A (zh) | 实现存储网关高可用分布式qos的方法 | |
CN116055499A (zh) | 基于redis的集群任务智能化调度方法、设备、介质 | |
CN106550002A (zh) | 一种paas云托管系统及方法 | |
CN105357222B (zh) | 一种分布式Session管理中间件 | |
CN112751895B (zh) | 通信连接保活方法及其系统 | |
JP2004072485A (ja) | プレゼンス情報通知装置、プレゼンス情報通知プログラム、プログラム記録媒体、及びプレゼンス情報通知方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |