CN111770030B - 消息持久化处理方法、装置和存储介质 - Google Patents
消息持久化处理方法、装置和存储介质 Download PDFInfo
- Publication number
- CN111770030B CN111770030B CN201910410582.3A CN201910410582A CN111770030B CN 111770030 B CN111770030 B CN 111770030B CN 201910410582 A CN201910410582 A CN 201910410582A CN 111770030 B CN111770030 B CN 111770030B
- Authority
- CN
- China
- Prior art keywords
- request message
- buffer queue
- message
- persistence
- determining
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/72—Admission control; Resource allocation using reservation actions during connection setup
- H04L47/722—Admission control; Resource allocation using reservation actions during connection setup at the destination endpoint, e.g. reservation of terminal resources or buffer space
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种消息持久化处理方法、装置和存储介质,该方法为:获取当前可用内存的大小;根据所述当前可用内存的大小,确定缓冲队列的长度;接收请求消息,并根据所述缓冲队列的长度将所述请求消息存入所述缓冲队列;对所述缓冲队列中的所述请求消息执行持久化操作。本发明提供的消息持久化处理方法、装置和存储介质,在对请求消息进行持久化处理的过程中,可以保证数据的不丢失,还可以提高***的稳定性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种消息持久化处理方法、装置和存储介质。
背景技术
在互联网时代,请求消息在进行传输的过程中,可能会出现丢包、消息队列阻塞或消息服务器重启或物理主机重启等因素,为了保证请求消息不丢失,通常将待传输的请求消息进行持久化处理,也即将请求消息写入磁盘中,实现数据的不丢失。
现有技术中,图1是本发明实施例提供的一种消息持久化处理的流程示意图,如图1所示,请求消息的持久化处理具体为:在服务器接收到请求消息时,通过同步或异步的方式,将接收到的请求消息传输至消息中间件的存储单元(持久层),存储单元对接收到的请求消息逐个进行持久化处理。为了能够对请求消息进行批量持久化处理,在进行持久化之前,也即在持久层之前可以增加缓冲层,具体的,将接收到的请求消息先存储至缓冲层,该缓冲层可以将请求消息按照接收到的顺序进行排列,进而再对缓冲层的请求消息批量传输至持久层,并批量进行持久化处理。
虽然存储单元对请求消息可以进行持久化处理,但是在请求消息并发量较大的情况下,将无法对请求消息进行持久化处理。另外,即使增加缓存层,当请求消息并发量较大时,部分请求消息会溢出,导致数据的丢失。
发明内容
为解决现有技术中存在的问题,本发明提供一种消息持久化处理方法、装置和存储介质,在对请求消息进行持久化处理的过程中,可以保证数据的不丢失,还可以提高***的稳定性。
第一方面,本发明实施例提供一种消息持久化处理方法,该方法包括:
获取当前可用内存的大小;
根据所述当前可用内存的大小,确定缓冲队列的长度;
接收请求消息,并根据所述缓冲队列的长度将所述请求消息存入所述缓冲队列;
对所述缓冲队列中的所述请求消息执行持久化操作。
可选的,所述根据所述当前可用内存大小,确定缓冲队列的长度,包括:
获取接收到的所述请求消息的大小;
根据所述当前可用内存大小和所述请求消息的大小,确定第一预设时间段内所接收到的请求消息的初始峰值;
根据所述初始峰值和双曲正切函数,确定所述第一预设时间段内所接收到的请求消息的伸缩峰值;
将所述伸缩峰值确定为所述缓冲队列的长度。
可选的,所述对所述缓冲队列中的所述请求消息执行持久化操作,包括:
每隔第二预设时间段,将所述缓冲队列中的所述请求消息执行持久化操作;
或者,
在所述缓冲队列中的所述请求消息的数量达到第一预设阈值时,将所述缓冲队列中的所有所述请求消息执行持久化操作。
可选的,所述方法还包括:
根据第三预设时间段,将所述可用内存划分为m个子内存,所述m个子内存为环状结构;
获取第n个请求消息存储在第一子内存中的时间,所述第一子内存为所述m个子内存中的任意一个;
根据当前时间和所述第n个请求消息存储在第一子内存中的时间,确定流失时间;
根据所述流失时间和所述第三预设时间段,确定是否对所述请求消息进行限流操作。
可选的,所述根据所述流失时间和所述第三预设时间段,确定是否对所述请求消息进行限流操作,包括:
判断所述流失时间是否小于所述第三预设时间段;
若所述流失时间小于所述第三预设时间段,则确定对所述请求消息进行限流操作。
可选的,所述若所述流失时间小于所述第三预设时间段,则确定对所述请求消息进行限流操作,包括:
若所述流失时间小于所述第三预设时间段,则根据所述流失时间和所述第三预设时间段,确定休眠时间;
控制所述请求消息在所述休眠时间内处于挂起状态。
可选的,所述方法还包括:
确定对所述缓冲队列中的所述请求消息执行持久化操作是否失败;
若对所述缓冲队列中的所述请求消息执行持久化操作的失败次数超过第二预设阈值,则将执行持久化操作失败的请求消息存入消息重试缓存队列中,所述消息重试缓存队列的长度为根据所述当前可用内存的大小确定的;
在轮询触发器启动后,对所述消息重试缓存队列中的预设数量的所述请求消息执行持久化操作。
第二方面,本发明实施例提供一种消息持久化处理装置,包括:
获取模块,用于获取当前可用内存的大小;
确定模块,用于根据所述获取模块获取到的所述当前可用内存的大小,确定缓冲队列的长度;
接收模块,用于接收请求消息,并根据所述缓冲队列的长度将所述请求消息存入所述缓冲队列;
处理模块,用于对所述缓冲队列中的所述请求消息执行持久化操作。
可选的,所述确定模块,具体用于:
获取接收到的所述请求消息的大小;
根据所述当前可用内存大小和所述请求消息的大小,确定第一预设时间段内所接收到的请求消息的初始峰值;
根据所述初始峰值和双曲正切函数,确定所述第一预设时间段内所接收到的请求消息的伸缩峰值;
将所述伸缩峰值确定为所述缓冲队列的长度。
可选的,所述处理模块,具体用于:
每隔第二预设时间段,将所述缓冲队列中的所述请求消息执行持久化操作;
或者,
在所述缓冲队列中的所述请求消息的数量达到第一预设阈值时,将所述缓冲队列中的所有所述请求消息执行持久化操作。
可选的,所述装置还包括:限流模块,其中,
所述处理模块,还用于根据第三预设时间段,将所述可用内存划分为m个子内存,所述m个子内存为环状结构;
所述获取模块,还用于获取第n个请求消息存储在第一子内存中的时间,所述第一子内存为所述m个子内存中的任意一个;
所述确定模块,还用于根据当前时间和所述第n个请求消息存储在第一子内存中的时间,确定流失时间;
所述限流模块,用于根据所述流失时间和所述第三预设时间段,确定是否对所述请求消息进行限流操作。
可选的,所述限流模块,具体用于:
判断所述流失时间是否小于所述第三预设时间段;
若所述流失时间小于所述第三预设时间段,则确定对所述请求消息进行限流操作。
可选的,所述限流模块,具体用于:
若所述流失时间小于所述第三预设时间段,则根据所述流失时间和所述第三预设时间段,确定休眠时间;
控制所述请求消息在所述休眠时间内处于挂起状态。
可选的,所述装置还包括:重试模块,其中,
所述确定模块,还用于确定对所述缓冲队列中的所述请求消息执行持久化操作是否失败;
所述处理模块,还用于若对所述缓冲队列中的所述请求消息执行持久化操作的失败次数超过第二预设阈值,则将执行持久化操作失败的请求消息存入消息重试缓存队列中,所述消息重试缓存队列的长度为根据所述当前可用内存的大小确定的;
所述重试模块,用于在轮询触发器启动后,对所述消息重试缓存队列中的预设数量的所述请求消息执行持久化操作。
第三方面,本发明实施例提供一种服务器,包括:
处理器;
存储器;以及
计算机程序;
其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行第一方面所述的方法的指令。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得服务器执行第一方面所述的方法。
本发明提供的消息持久化处理方法、装置和存储介质,该方法通过获取当前可用内存的大小;并根据当前可用内存的大小,确定缓冲队列的长度;接收请求消息,并根据缓冲队列的长度将请求消息存入缓冲队列;进一步对缓冲队列中的请求消息执行持久化操作。由于在对请求消息进行持久化处理之前,先获取到可用内存大小,并根据可用内存大小和请求消息,进一步的确定出所需的缓冲队列的长度,并将接收到的请求消息存入至已确定的缓冲队列中,由于根据可用内存的大小和请求消息来确定缓冲队列的长度,即使在接收到较多请求消息时,也能够将所有的请求消息存放至缓冲队列中,保证数据的不丢失。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图;
图1是本发明实施例提供的一种消息持久化处理的流程示意图;
图2是本发明根据一示例性实施例示出的一种消息持久化处理方法的流程示意图;
图3是本发明根据另一示例性实施例示出的一种消息持久化处理方法的流程示意图;
图4是本发明根据又一示例性实施例示出的一种消息持久化处理方法的流程示意图;
图5是本发明实施例提供的一种消息持久化处理的流程图;
图6是本发明根据再一示例性实施例示出的一种消息持久化处理方法的流程示意图;
图7是本发明实施例提供的一种消息持久化处理限流流程图;
图8是本发明根据再一示例性实施例示出的一种消息持久化处理方法的流程示意图;
图9是本发明实施例提供的一种消息持久化处理的重试流程图;
图10是本发明根据一示例性实施例示出的一种消息持久化处理装置框图;
图11是本发明根据另一示例性实施例示出的一种消息持久化处理装置框图;
图12是本发明根据又一示例性实施例示出的一种消息持久化处理装置框图;
图13是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”及“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明提供的消息持久化处理方法可以应用于:对请求消息进行传输过程中的持久化处理的场景中,现有技术中,在请求消息持久化处理的过程中,由于缓存层的长度有限,当请求消息所占空间的大小超过缓存层的存储空间时,部分请求消息将会溢出,导致数据丢失。
考虑到上述技术问题,本发明提出了一种消息持久化处理方法,该方法通过获取当前可用内存的大小;并根据当前可用内存的大小,确定缓冲队列的长度;接收请求消息,并根据缓冲队列的长度将请求消息存入缓冲队列;进一步对缓冲队列中的请求消息执行持久化操作。由于在对请求消息进行持久化处理之前,先获取到可用内存大小,并根据该可用内存大小和请求消息,进一步的确定出所需的缓冲队列的长度,并将接收到的请求消息存入至已确定的缓冲队列中。这样根据可用内存的大小和请求消息来确定缓冲队列的长度,即使在接收到较多请求消息时,也能够将所有请求消息存放至缓冲队列中,保证数据的不丢失。
下面以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2是本发明根据一示例性实施例示出的一种消息持久化处理的流程示意图。本发明实施例提供了一种消息持久化处理方法,该方法可以由消息持久化处理装置来执行,该装置可以通过软件和/或硬件实现。在本实施例中,该消息持久化处理装置可以集成在服务器中,如图2所示,本发明实施例提供的消息持久化处理方法包括如下步骤:
步骤201:获取当前可用内存的大小。
在本步骤中,所述内存可以指用于存储持久化请求消息的硬盘、磁盘或者其他存储设备等,当然,可用内存即指硬盘的可使用的存储空间的大小,其中,请求消息为请求进行持久化的消息。在对请求消息进行持久化处理之前,首先获取到当前硬盘的可用内存的大小,这样可以为后续进行请求消息持久化提供基础条件,以使请求消息持久化处理过程的持续性。
步骤202:根据当前可用内存的大小,确定缓冲队列的长度。
在本步骤中,缓冲队列为在请求消息进行持久化处理之前,将接收到的请求消息组成的队列,当然可以按照接收到请求消息的先后顺序形成的队列,该缓冲队列为可伸缩的队列,也就是说,缓冲队列的长度可以根据请求消息所占空间的多少可以伸缩。
示例的,在获取到可用内存的大小之后,可以根据获取的内存大小,得知当前请求消息持久化的效率或速度,进而确定出下一时刻请求消息的所需的内存大小,根据所需内存大小,确定出缓冲队列的长度。
在本步骤中,根据可用内存的多少,确定出缓存队列的长度,这样可以使得接收到的请求消息均可以存入至该缓冲队列中,避免现有技术中由于缓冲队列的长度有限,在请求消息并发量较大时,部分请求消息溢出,导致数据丢失。
步骤203:接收请求消息,并根据缓冲队列的长度将请求消息存入缓冲队列。
在本步骤中,通过确定出的缓冲队列的长度,将接收到的请求消息,按照顺序存放入缓冲队列中,以进行持久化处理。
步骤204:对缓冲队列中的请求消息执行持久化操作。
在本步骤中,持久化是将程序数据在持久状态和瞬时状态间转换的机制。通俗的讲,就是瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存)。在本实施例中,也即将存储在缓冲队列中请求消息长久的保存至数据库中,实现请求消息的长久保存。
示例的,取出缓冲队列中储存的请求消息,并对取出的请求消息批量持久化处理。这样使得接收到的请求消息均能够进行持久化处理,进而实现请求消息永久的保存。
本发明实施例提供的消息持久化处理方法,该方法通过获取当前可用内存的大小;并根据当前可用内存的大小,确定缓冲队列的长度;接收请求消息,并根据缓冲队列的长度将请求消息存入缓冲队列;进一步对缓冲队列中的请求消息执行持久化操作。由于在对请求消息进行持久化处理之前,先获取到可用内存大小,根据该可用内存大小和请求消息,进一步的确定出所需的缓冲队列的长度,并将接收到的请求消息存入至已确定的缓冲队列中。这样根据可用内存的大小和请求消息来确定缓冲队列的长度,即使在接收到较多请求消息时,也能够将请求消息存放至缓冲队列中,保证数据的不丢失。
图3是本发明根据另一示例性实施例示出的一种消息持久化处理方法的流程示意图,在图2的基础上,对如何根据当前可用内存大小,确定缓冲队列的长度的过程,进行详细说明。如图3所示,本发明实施例提供的消息持久化处理方法包括如下步骤:
步骤301:获取当前可用内存的大小。
步骤301与步骤201类似,此处不再赘述。
步骤302:获取接收到的请求消息的大小。
在本步骤中,请求消息的大小为请求消息所占据存储空间的大小,也可以称为请求消息的体积,在实际的情况下,每个请求消息的体积不一定相同。在本实施例中,可以假设平均单个请求消息的体积看作为v=1(k),但也不局限于此,可以根据实际情况进行设定。
步骤303:根据当前可用内存大小和请求消息的大小,确定第一预设时间段内所接收到的请求消息的初始峰值。
其中,第一预设时间段可以根据实际需要进行设置,例如,200ms、500ms、1000ms或2000ms等,本实施例对第一预设时间段的设置不做任何限定。另外,初始峰值为在第一预设时间段内接收到的请求消息的初始峰值,也即第一预设时间段内的初始最大请求消息的流量。示例的,可以根据公式1计算初始峰值,假设平均单个请求消息的体积看作为v=1(k):
y=(m×1024×k)×(t/1000)/v/2 (公式1)
式中,y为初始峰值;t为第一预设时间段(ms);m为当前可用内存大小(Mb);k为初始阈值,可以为经验值,当然也可以通过实验获取,在本实施例中,k=0.2,当然,对于初始阈值的设定,本实施例不做任何限制。
在本步骤中,根据上述获取到的当前可用内存大小和请求消息的大小,计算出第一预设时间段内接收到的请求消息的初始峰值,初始峰值为确定出伸缩峰值提供基础。当然,也可以通过初始峰值得知第一预设时间段内接收请求消息的初始最大流量。
步骤304:根据初始峰值和双曲正切函数,确定第一预设时间段内所接收到的请求消息的伸缩峰值。
在本步骤中,伸缩峰值为在第一预设时间段内接收到请求消息的最大流流量,该伸缩峰值为可伸缩的,根据初始峰值进行伸缩,通过步骤303中确定出的初始峰值,计算第一预设时间段内的伸缩峰值,伸缩峰值可以根据公式2计算:
x=y×(1+tanh(d-y)) (公式2)
式中,x为伸缩峰值;d为上个t时间段内的请求消息的流量;tanh函数为双曲正切函数。
在本步骤中,通过tanh双曲正切函数,来确定伸缩峰值在初始峰值的基础上伸缩的倍数,由于该函数有良好的收敛效果,可以保证在较大压力情况下,伸缩峰值的伸缩量不超过初始峰值的2倍。
步骤305:将伸缩峰值确定为缓冲队列的长度。
在本步骤中,将上述确定出的伸缩峰值确定为当前缓冲队列的长度,由于伸缩峰值为动态的,因此,缓冲队列的长度也为动态的、可伸缩的,可根据当前可用内存的大小进行改变,以满足接收到的请求消息的存储。
步骤306:接收请求消息,并根据缓冲队列的长度将请求消息存入缓冲队列。
步骤307:对缓冲队列中的请求消息执行持久化操作。
步骤306-步骤307与步骤203-步骤204类似,此处不再赘述。
在本实施例中,根据当前可用内存和请求消息的大小,获取到第一预设时间段内的初始峰值,根据初始峰值有进一步的确定出伸缩峰值,并根据确定出的伸缩峰值确定缓冲队列的长度,进而将接收到的请求消息放入至缓冲队列中,通过上一预设时间段内的请求消息的流量,对当前第一预设时间段内的请求消息进行预先评估,获取到缓冲队列的长度,保证当前接收到的请求消息均能放入至缓冲队列中。另外,通过tanh双曲正切函数来计算出缓冲队列伸缩的倍数,使得伸缩倍数更切合实际。
图4是本发明根据又一示例性实施例示出的一种消息持久化处理方法的流程示意图,本实施例在图2所示实施例的基础上,对如何对缓冲队列中的请求消息执行持久化操作的过程,进行详细说明。如图4所示,本发明实施例提供的消息持久化处理方法包括如下步骤:
步骤401:获取当前可用内存的大小。
步骤402:根据当前可用内存的大小,确定缓冲队列的长度。
步骤403:接收请求消息,并根据缓冲队列的长度将请求消息存入缓冲队列。
步骤401-步骤403与步骤201-步骤203类似,此处不在赘述。
步骤404:每隔第二预设时间段,将缓冲队列中的请求消息执行持久化操作;或者,在缓冲队列中的请求消息的数量达到第一预设阈值时,将缓冲队列中的所有请求消息执行持久化操作。
在本步骤中,对缓冲队列中的请求消息批量进行持久化操作的触发条件,可以包括以下两种:
每隔第二预设时间段,将缓冲队列中的请求消息执行持久化操作。其中,所述第二预设时间段可以设置为1s、2s、0.5s或5s等,也即,每隔第二预设时间段,将会对缓冲队列中的请求消息进行持久化处理。本发明实施例对第二预设时间段不做任何限定,可以根据实际情况进行设定。示例的,首先,在接收到请求消息后,判断是否要进行合并处理。若是,则启动一个循环的触发器,该触发器可以通过设置触发时间间隔n(例如为1秒)来定时对当前最大执行消息数量m(可以默认为100条)条进行合并处理。若不需要,则将设置当前最大执行消息数量m=1。
具体的,循环的触发器间隔n秒执行持久化处理,也即,第二预设时间段为n秒,当每隔n秒,将会对缓冲队列中的请求消息批量进行持久化处理,例如,每隔n秒持久化处理m条请求消息。
在一种可实现的方式中,在缓冲队列中的请求消息的数量达到第一预设阈值时,将缓冲队列中的所有请求消息执行持久化操作。其中,所述第一预设阈值可以为50、100、500或1000等,也即,当缓冲队列中存储的请求消息达到该第一预设阈值时,将会对缓冲队列中的请求消息进行持久化处理。本实施例对第一预设阈值的设定不做任何限制,也可以根据实际情况设定。
示例的,当缓冲队列中的请求消息的数量达到第一预设阈值m时,将会对m条请求消息批量进行持久化处理。例如,当缓存队列中达到100条请求消息,则批量处理100条消息。另外,当m=1时,则会关闭循环触发器,也即,每当请求消息到达时,才会对请求消息进行持久化处理。
在本步骤中,通过对请求消息进行批量持久化处理,可以降低输入/输出(Input/Output,I/O)和磁盘使用率,进一步的延长磁盘的使用寿命,另一方面还可以提高网络的利用率。
图5是本发明实施例提供的一种消息持久化处理的流程图,如图5所示,在接收到请求消息后,将启动持久化处理过程中的循环触发器,并将接收到的所有请求消息写入日志文件中,当请求消息发生异常或丢失的情况下,可以通过异常回滚,从日志文件中重新获取请求消息。
另外,将接收到的请求消息放入至已经确定长度的缓冲队列中。获取当前最大执行请求消息数量m,判断当前缓冲队列中请求消息的数量s与当前最大执行请求消息数量m的大小,当s=0或s<m,则结束批量持久化处理。若s>m,将整个缓冲队列中存放的所有请求消息全部取出,并将所有请求消息合并为一个预处理的请求消息集合。这样可以保证请求消息在放入缓冲队列、取出缓冲队列以及在锁定状态下判断缓冲队列长度时整个队列的一致性。继续判断合并的预处理请求消息集合,当判断出合并请求消息集合为0,则结束批量持久化处理,当预处理请求消息集合不为空(大于0),则将预处理请求消息集合中的请求消息统一执行持久化处理,并在持久化处理完成之后,记录当前执行持久化的序列号。
在本实施例中,通过每隔第二预设时间段,将缓冲队列中的请求消息取出,并批量进行持久化操作;或者,通过在缓冲队列中的请求消息的数量达到第一预设阈值时,将缓冲队列中的所有请求消息执行持久化操作。由于基于上述两种方式来对缓冲队列中的请求消息批量进行持久化操作,可以保证请求消息在持久化的过程中不会丢失。另外,通过对接收到的请求消息写入日志文件,并在发生异常时,通过异常回滚重新获取到请求消息,这样进一步的保证请求消息的不丢失。
图6是本发明根据再一示例性实施例示出的一种消息持久化处理方法的流程示意图,本实施例在图2所示实施例的基础上,在请求消息数量较大的情形下,如何对接收到的请求消息进行限流,进行详细说明。如图6所示,本发明实施例提供的消息持久化处理方法包括如下步骤:
步骤601:根据第三预设时间段,将可用内存划分为m个子内存,m个子内存为环状结构。
在本步骤中,在接收到请求消息之后,根据当前的内存和请求消息的大小,计算出第一预设时间段内的初始峰值和伸缩峰值,计算方式参照公式(1)和公式(2),其中,初始阈值k=0.15。
在确定出初始峰值和伸缩峰值之后,根据第三预设时间段,将可用内存分为m个子内存。示例的,图7是本发明实施例提供的一种消息持久化处理限流流程图,如图7所示,可以将可用内存设置为环状结构,并将环状的可用内存分为m个子内存,m个子内存可以为等分,也可以为不等分,在此不做限制。另外,第三预设时间段也已根据实际需要进行设置,此处不做限制。
步骤602:获取第n个请求消息存储在第一子内存中的时间,第一子内存为m个子内存中的任意一个。
在本步骤中,在接收到请求消息后,会将每个请求消息按照顺序存放在环状结构中的每一个子内存中,并记录每一个请求消息存储至子内存的时间。在本实施例中,可以将第n个请求消息存储至第一子内存中为例。获取第n个请求消息存储在第一子内存中的时间,其中,第一子内存为所有子内存中的任意一个子内存。示例的,假设每个请求消息以数组(s[n%m])的形式存储,其中,下标n的初始值为0,每接收一个请求消息,下标n加1,通过每个计时点开始的时间t,也即,第n个请求消息存储在第一子内存中的时间,例如,在时间t,将第n个请求消息存储在s[n%m]这个数组中。通过获取请求消息的存储在子内存中的时间,为后续确定出流失时间提供条件。
步骤603:根据当前时间和第n个请求消息存储在第一子内存中的时间,确定流失时间。
在本步骤中,通过上述确定出的第n个请求消息存储在第一子内存中的时间以及当前的时间,进而确定出流失时间,其中,流失时间为请求消息在子内存中存储的时间。
示例的,继上述例子,第n个请求消息的流失时间t2=(当前时间-t),因此,通过请求消息开始存储在子内存的时间以及当前时间,可以计算出请求消息的流失时间。根据计算出的流失时间与第三预设时间段进行比较,进一步的可以确定出是否需要对该请求消息进行限流。
步骤604:根据流失时间和第三预设时间段,确定是否对请求消息进行限流操作。
示例的,继续参考图7,若确定出不需要对请求消息进行限流,则请求消息直接通过并进行持久化处理,若确定需要对请求消息进行限流,则进行限流操作。
在本步骤中,对请求消息进行限流操作的目的,一方面为了在接收到较多请求消息时,可以保证接收到的请求消息不会从缓冲队列中溢出来,导致数据的丢失。另一方面为了解决现有技术中,由于在对较多的请求消息进行持久化处理时,造成***的性能降低,通过对请求消息进行限流操作,可以进一步的提高***的稳定性。
可选的,可以通过如下方式确定是否需要对请求消息进行限流操作:判断流失时间是否小于第三预设时间段,若流失时间小于第三预设时间段,则确定对请求消息进行限流操作。
示例的,若计算出第n个请求消息的流失时间t2为800ms,小于第三预设时间段i(例如为1000ms),则确定对第n个请求消息进行限流操作。
进一步地,若流失时间小于第三预设时间段,则根据流失时间和第三预设时间段,确定休眠时间;其中,休眠时间为请求消息经限流操作后的休眠时间,还可以理解为在休眠时间之后,将对请求消息进行持久化处理。示例的,继上述例子,若第n个请求消息的流失时间t2小于第三预设时间段i,根据第n个请求消息的流失时间和第三预设时间,还需要计算出第n个请求消息的休眠时间,也即,第n个请求消息的休眠时间=第三预设时间-流失时间,也即i-t2。
在确定出请求消息的休眠时间后,控制请求消息在休眠时间内处于挂起状态。其中,挂起状态为对请求消息暂时进行休眠,不进行持久化处理。
在本实施例中,通过对请求消息进行限流操作,一方面可以保证接收到的请求消息不会从缓冲队列中溢出来,导致数据的丢失。另一方面还解决了现有技术中,由于在对较多的请求消息进行持久化处理时,造成***的性能降低的问题,通过对请求消息进行限流操作,可以进一步的提高***的稳定性。
图8是本发明根据再一示例性实施例示出的一种消息持久化处理方法的流程示意图,本实施例在图2所示实施例的基础上,在请求消息执行持久化过程中,对异常请求消息如何进行重试持久化的过程,进行详细说明。如图8所示,本发明实施例提供的消息持久化处理方法包括如下步骤:
步骤801:获取当前可用内存的大小。
步骤802:根据当前可用内存的大小,确定缓冲队列的长度。
步骤803:接收请求消息,并根据缓冲队列的长度将请求消息存入缓冲队列。
步骤804:对缓冲队列中的请求消息执行持久化操作。
步骤801-步骤804与步骤201-步骤204类似,此处不在赘述。
步骤805:确定对缓冲队列中的请求消息执行持久化操作是否失败。
示例的,在对缓冲队列的请求消息进行持久化之后,将会反馈结果信息,该反馈结果信息可以为成功或失败,若反馈的结果信息为成功,则该请求消息已经成功持久化。若反馈结果信息为失败,则会进行下一步骤,也即若对缓冲队列中的请求消息执行持久化操作的失败次数超过第二预设阈值,则将执行持久化操作失败的请求消息存入消息重试缓存队列中。
步骤806:若对缓冲队列中的请求消息执行持久化操作的失败次数超过第二预设阈值,则将执行持久化操作失败的请求消息存入消息重试缓存队列中,消息重试缓存队列的长度为当前可用内存的大小确定的。
示例的,若对缓冲队列中的请求消息持久化操作失败时,还可以对该请求消息进行重试持久化操作,若重试n次之后仍不能成功持久化(其中,重试次数n也即第二预设阈值,可根据具体情况进行设定),则将持久化操作失败的请求消息放入消息重试缓存队列中。其中,消息重试缓存队列为用于存储持久化操作失败次数超过第二预设阈值的请求消息的队列,可以根据当前可用内存和请求消息体积进行计算获得,具体计算可以根据公式(1)和公式(2),此处不再赘述,其中,初始阈值k=0.1。
步骤807:在轮询触发器启动后,对消息重试缓存队列中的预设数量的请求消息执行持久化操作。
在本步骤中,轮询触发器用于轮询将消息重试缓冲队列中的请求消息执行持久化处理。在轮询触发器启动后,对消息重试缓冲队列中的预设数量的请求消息进行持久化处理,其中,预设数量可以根据实际情况具体设定,可以为100条、50条或10条。
图9是本发明实施例提供的一种消息持久化处理的重试流程图,如图9所示,在轮询触发器启动后,通过读取未处理的或持久化操作失败的请求消息,并根据确定出消息重试缓冲队列的长度,将该些请求消息存储在消息重试缓冲队列中,进而对消息重试缓冲队列中的请求消息进行持久化处理。
示例的,若在初始状态下,可以创建一个轮询触发器,通过设置开始时间(设置为1s)与下次执行的时间间隔(例如,可以设置为阶梯递增的时间间隔)来启动轮询触发器。通过设置乘数p(通常为2)、最大重试次数q、递增间隔时间t(通常为2000ms),结合已经重试次数c来动态计算下次执行的时间间隔,其计算结果为递增结果,当达到最大重试次数,判断是否需要再重新循环,下次执行时间的计算方式为:
T=当前时间+t×p(c%q) 公式(3)
当轮询触发器触发时,从消息重试缓冲队列中取出最大执行的请求消息数量m条消息记录,并对取出的请求消息执行重试持久化操作,若重试持久化的失败次数超过3次,则继续将持久化操作失败的请求消息放入至消息重试缓冲队列中,等待下次触发器的触发。
在进行请求消息处理化的过程中,难免会遇到***出现异常或崩溃的情形,在这种情况下,本实施例还可以通过日志文件中的存储的请求消息的数据信息恢复至消息重试缓冲队列中。具体的,根据日志文件中的请求消息的ID,按序重读日志文件,并将未执行持久化处理的请求消息存入至消息重试缓冲队列中,以进行请求消息持久化处理。
在本实施例中,通过将持久化操作失败的请求消息放入至消息重试缓冲队列中,可以避免在进行消息重试持久化操作时,因持久化操作失败的请求消息过多,导致***性能的降低,或者导致请求消息的阻塞或者丢失。另外,通过日志文件对请求消息的记录,更进一步的保证数据的不丢失,且对持久化操作失败的请求消息的修补机制,在一定程度上保证了事物的完整性和一致性。
图10是本发明根据一示例性实施例示出的一种消息持久化处理装置的框图,如图10所示,该消息持久化处理装置包括:获取模块11、确定模块12、接收模块13和处理模块14,其中:
获取模块11,用于获取当前可用内存的大小;
确定模块12,用于根据获取模块11获取到的当前可用内存的大小,确定缓冲队列的长度;
接收模块13,用于接收请求消息,并根据缓冲队列的长度将请求消息存入缓冲队列;
处理模块14,用于对缓冲队列中的请求消息执行持久化操作。
本发明提供的消息持久化装置,该装置通过获取模块11获取当前可用内存的大小;确定模块12根据当前可用内存的大小,确定缓冲队列的长度;接收模块13接收请求消息,并根据缓冲队列的长度将请求消息存入缓冲队列;进一步的,处理模块14对缓冲队列中的请求消息执行持久化操作。由于在对请求消息进行持久化处理之前,先获取到可用内存大小,根据该可用内存大小和请求消息,进一步的确定出所需的缓冲队列的长度,并将接收到的请求消息存入至已确定的缓冲队列中。这样根据可用内存的大小和请求消息来确定缓冲队列的长度,即使在接收到较多请求消息时,也能够将请求消息存放至缓冲队列中,保证数据的不丢失。
可选的,确定模块12,具体用于:
获取接收到的请求消息的大小;
根据当前可用内存大小和请求消息的大小,确定第一预设时间段内所接收到的请求消息的初始峰值;
根据初始峰值和双曲正切函数,确定第一预设时间段内所接收到的请求消息的伸缩峰值;
将伸缩峰值确定为缓冲队列的长度。
可选的,处理模块14,具体用于:
每隔第二预设时间段,将缓冲队列中的请求消息执行持久化操作;
或者,
在缓冲队列中的请求消息的数量达到第一预设阈值时,将缓冲队列中的所有请求消息执行持久化操作。
上述装置可用于执行上述对应方法实施例提供的方法,具体实现方式和技术效果类似,这里不再赘述。
图11是本发明根据另一示例性实施例示出的一种消息持久化处理装置的框图,如图11所示,该消息持久化处理还装置包括:限流模块15,其中:
处理模块14,还用于根据第三预设时间段,将可用内存划分为m个子内存,m个子内存为环状结构;
获取模块11,还用于获取第n个请求消息存储在第一子内存中的时间,第一子内存为m个子内存中的任意一个;
确定模块12,还用于根据当前时间和第n个请求消息存储在第一子内存中的时间,确定流失时间;
限流模块15,用于根据流失时间和第三预设时间段,确定是否对请求消息进行限流操作。
可选的,限流模块15,具体用于:
判断流失时间是否小于第三预设时间段;
若流失时间小于第三预设时间段,则确定对请求消息进行限流操作。
可选的,限流模块15,具体用于:
若流失时间小于第三预设时间段,则根据流失时间和第三预设时间段,确定休眠时间;
控制请求消息在休眠时间内处于挂起状态。
上述装置可用于执行上述对应方法实施例提供的方法,具体实现方式和技术效果类似,这里不再赘述。
图12是本发明根据又一示例性实施例示出的一种消息持久化处理装置的框图,如图12所示,该消息持久化处理还装置包括:重试模块16,其中:
确定模块12,还用于确定对缓冲队列中的请求消息执行持久化操作是否失败;
处理模块14,还用于若对缓冲队列中的请求消息执行持久化操作的失败次数超过第二预设阈值,则将执行持久化操作失败的请求消息存入消息重试缓存队列中,消息重试缓存队列的长度为根据当前可用内存的大小确定的;
重试模块16,用于在轮询触发器启动后,对消息重试缓存队列中的预设数量的请求消息执行持久化操作。
上述装置可用于执行上述对应方法实施例提供的方法,具体实现方式和技术效果类似,这里不再赘述。
以上处理模块可以被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上***(system-on-a-chip,简称SOC)的形式实现。
图13为本发明实施例提供的一种服务器的结构示意图。图10显示的服务器仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图13所示,该服务器可以包括发送器60、处理器61、存储器62和至少一个通信总线63。通信总线63用于实现元件之间的通信连接。存储器62可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,存储器62中可以存储各种程序,用于完成各种处理功能以及实现本实施例的方法步骤。另外,该服务器还可以包括接收器64,本实施例中的接收器64可以为相应的具有通信功能和接收信息功能的输入接口,本实施例中的发送器60可以为相应的具有通信功能和发送信息功能的输出接口。可选的,该发送器60和接收器64可以集成在一个通信接口中,也可以分别为独立的两个通信接口。
另外,存储器62中存储有计算机程序,并且被配置为由处理器61执行,该计算机程序包括用于执行如上图2、图3、图4、图6和图8所示实施例的方法的指令或者执行如上图2、图3、图4、图6和图8所示实施例的方法的指令。
本发明实施例还提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机程序,计算机程序使得服务器执行前述图2、图3、图4、图6和图8所示实施例提供的消息持久化处理方法。其中,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (14)
1.一种消息持久化处理方法,其特征在于,包括:
获取当前可用内存的大小;
根据所述当前可用内存的大小,确定缓冲队列的长度;
接收请求消息,并根据所述缓冲队列的长度将所述请求消息存入所述缓冲队列;
对所述缓冲队列中的所述请求消息执行持久化操作;
所述根据所述当前可用内存大小,确定缓冲队列的长度,包括:
获取接收到的所述请求消息的大小;
根据所述当前可用内存大小和所述请求消息的大小,确定第一预设时间段内所接收到的请求消息的初始峰值;
根据所述初始峰值和双曲正切函数,确定所述第一预设时间段内所接收到的请求消息的伸缩峰值;
将所述伸缩峰值确定为所述缓冲队列的长度。
2.根据权利要求1所述的方法,其特征在于,所述对所述缓冲队列中的所述请求消息执行持久化操作,包括:
每隔第二预设时间段,将所述缓冲队列中的所述请求消息执行持久化操作;
或者,
在所述缓冲队列中的所述请求消息的数量达到第一预设阈值时,将所述缓冲队列中的所有所述请求消息执行持久化操作。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
根据第三预设时间段,将所述可用内存划分为m个子内存,所述m个子内存为环状结构;
获取第n个请求消息存储在第一子内存中的时间,所述第一子内存为所述m个子内存中的任意一个;
根据当前时间和所述第n个请求消息存储在第一子内存中的时间,确定流失时间;
根据所述流失时间和所述第三预设时间段,确定是否对所述请求消息进行限流操作。
4.根据权利要求3所述的方法,其特征在于,所述根据所述流失时间和所述第三预设时间段,确定是否对所述请求消息进行限流操作,包括:
判断所述流失时间是否小于所述第三预设时间段;
若所述流失时间小于所述第三预设时间段,则确定对所述请求消息进行限流操作。
5.根据权利要求4所述的方法,其特征在于,所述若所述流失时间小于所述第三预设时间段,则确定对所述请求消息进行限流操作,包括:
若所述流失时间小于所述第三预设时间段,则根据所述流失时间和所述第三预设时间段,确定休眠时间;
控制所述请求消息在所述休眠时间内处于挂起状态。
6.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
确定对所述缓冲队列中的所述请求消息执行持久化操作是否失败;
若对所述缓冲队列中的所述请求消息执行持久化操作的失败次数超过第二预设阈值,则将执行持久化操作失败的请求消息存入消息重试缓存队列中,所述消息重试缓存队列的长度为根据所述当前可用内存的大小确定的;
在轮询触发器启动后,对所述消息重试缓存队列中的预设数量的所述请求消息执行持久化操作。
7.一种消息持久化处理装置,其特征在于,包括:
获取模块,用于获取当前可用内存的大小;
确定模块,用于根据所述获取模块获取到的所述当前可用内存的大小,确定缓冲队列的长度;
接收模块,用于接收请求消息,并根据所述缓冲队列的长度将所述请求消息存入所述缓冲队列;
处理模块,用于对所述缓冲队列中的所述请求消息执行持久化操作;
所述确定模块,具体用于:
获取接收到的所述请求消息的大小;
根据所述当前可用内存大小和所述请求消息的大小,确定第一预设时间段内所接收到的请求消息的初始峰值;
根据所述初始峰值和双曲正切函数,确定所述第一预设时间段内所接收到的请求消息的伸缩峰值;
将所述伸缩峰值确定为所述缓冲队列的长度。
8.根据权利要求7所述的装置,其特征在于,所述处理模块,具体用于:
每隔第二预设时间段,将所述缓冲队列中的所述请求消息执行持久化操作;
或者,
在所述缓冲队列中的所述请求消息的数量达到第一预设阈值时,将所述缓冲队列中的所有所述请求消息执行持久化操作。
9.根据权利要求7或8所述的装置,其特征在于,所述装置还包括:限流模块,其中:
所述处理模块,还用于根据第三预设时间段,将所述可用内存划分为m个子内存,所述m个子内存为环状结构;
所述获取模块,还用于获取第n个请求消息存储在第一子内存中的时间,所述第一子内存为所述m个子内存中的任意一个;
所述确定模块,还用于根据当前时间和所述第n个请求消息存储在第一子内存中的时间,确定流失时间;
所述限流模块,用于根据所述流失时间和所述第三预设时间段,确定是否对所述请求消息进行限流操作。
10.根据权利要求9所述的装置,其特征在于,所述限流模块,具体用于:
判断所述流失时间是否小于所述第三预设时间段;
若所述流失时间小于所述第三预设时间段,则确定对所述请求消息进行限流操作。
11.根据权利要求10所述的装置,其特征在于,所述限流模块,具体用于:
若所述流失时间小于所述第三预设时间段,则根据所述流失时间和所述第三预设时间段,确定休眠时间;
控制所述请求消息在所述休眠时间内处于挂起状态。
12.根据权利要求7或8所述的装置,其特征在于,所述装置还包括:重试模块;其中:
所述确定模块,还用于确定对所述缓冲队列中的所述请求消息执行持久化操作是否失败;
所述处理模块,还用于若对所述缓冲队列中的所述请求消息执行持久化操作的失败次数超过第二预设阈值,则将执行持久化操作失败的请求消息存入消息重试缓存队列中,所述消息重试缓存队列的长度为根据所述当前可用内存的大小确定的;
所述重试模块,用于在轮询触发器启动后,对所述消息重试缓存队列中的预设数量的所述请求消息执行持久化操作。
13.一种服务器,其特征在于,包括:
处理器;
存储器;以及
计算机程序;
其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如权利要求1-6任一项所述的方法的指令。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得服务器执行权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910410582.3A CN111770030B (zh) | 2019-05-17 | 2019-05-17 | 消息持久化处理方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910410582.3A CN111770030B (zh) | 2019-05-17 | 2019-05-17 | 消息持久化处理方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111770030A CN111770030A (zh) | 2020-10-13 |
CN111770030B true CN111770030B (zh) | 2023-08-08 |
Family
ID=72718744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910410582.3A Active CN111770030B (zh) | 2019-05-17 | 2019-05-17 | 消息持久化处理方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111770030B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114915659B (zh) * | 2021-02-09 | 2024-03-26 | 腾讯科技(深圳)有限公司 | 网络请求处理方法、装置、电子设备及存储介质 |
CN112995697B (zh) * | 2021-04-30 | 2021-09-07 | 武汉斗鱼鱼乐网络科技有限公司 | 一种流数据恢复方法、服务器、存储介质及计算机设备 |
CN113467719B (zh) * | 2021-06-25 | 2024-03-29 | 阿里巴巴创新公司 | 数据写入方法及装置 |
CN113836184A (zh) * | 2021-09-18 | 2021-12-24 | 深圳前海微众银行股份有限公司 | 一种业务持久化方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6418407B1 (en) * | 1999-09-30 | 2002-07-09 | Motorola, Inc. | Method and apparatus for pitch determination of a low bit rate digital voice message |
CN104680398A (zh) * | 2015-03-12 | 2015-06-03 | 浪潮集团有限公司 | 一种针对电商用户海量行为数据的获取和存储方法 |
CN104809093A (zh) * | 2015-04-13 | 2015-07-29 | 苏州凌犀物联网技术有限公司 | 对串行接口传输的数据进行处理的方法及装置 |
CN106897316B (zh) * | 2015-12-21 | 2021-08-10 | ***通信集团重庆有限公司 | 一种信令数据的处理方法和装置 |
CN107391269B (zh) * | 2016-03-28 | 2021-04-20 | 阿里巴巴集团控股有限公司 | 一种用于通过持久化队列处理消息的方法与设备 |
-
2019
- 2019-05-17 CN CN201910410582.3A patent/CN111770030B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111770030A (zh) | 2020-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111770030B (zh) | 消息持久化处理方法、装置和存储介质 | |
JP6088667B2 (ja) | メモリクリーニング方法及び装置、並びに端末装置 | |
US10440136B2 (en) | Method and system for resource scheduling | |
US20180285216A1 (en) | Virtual Machine Recovery Method and Virtual Machine Management Device | |
WO2015081470A1 (zh) | 数据处理设备和数据处理的方法 | |
CN109492018B (zh) | 一种数据同步***自适应动态调整方法和装置 | |
CN112162773B (zh) | 差分升级方法及装置、存储介质、终端 | |
CN112667527A (zh) | 一种确保客户端数据采集准确性的方法及客户端 | |
CN109710679B (zh) | 数据抽取方法及装置 | |
CN107094160B (zh) | 一种数据文件下载的方法和*** | |
CN110413398B (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
JP2005222366A (ja) | 自動復帰方法/プログラム/プログラム記録媒体、処理装置 | |
CN114884906B (zh) | 基于快速恢复的失败重试通知方法及装置 | |
CN111309442A (zh) | 微服务容器数量的调整方法、装置、***、介质及设备 | |
CN113302593A (zh) | 任务处理方法、装置、***、电子设备及存储介质 | |
CN113704027B (zh) | 文件聚合兼容方法、装置、计算机设备和存储介质 | |
CN108121580B (zh) | 应用程序通知服务的实现方法及装置 | |
CN111478933A (zh) | 应用集群数据预加载方法、装置、存储介质、设备及*** | |
CN109189615A (zh) | 一种宕机处理方法和装置 | |
CN111124292B (zh) | 一种数据下刷方法、装置、缓存节点及分布式存储*** | |
CN114780296A (zh) | 数据库集群的数据备份方法、装置及*** | |
CN114064348A (zh) | 一种备份还原方法、装置、设备及计算机可读存储介质 | |
CN114915659B (zh) | 网络请求处理方法、装置、电子设备及存储介质 | |
CN112069025B (zh) | 锁过期事件的处理方法及装置 | |
CN115292314B (zh) | 序列号生成方法、装置、计算机设备和存储介质 |
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 |