CN110392100B - 高并发事件的处理方法及装置、存储介质、计算机设备 - Google Patents
高并发事件的处理方法及装置、存储介质、计算机设备 Download PDFInfo
- Publication number
- CN110392100B CN110392100B CN201910630509.7A CN201910630509A CN110392100B CN 110392100 B CN110392100 B CN 110392100B CN 201910630509 A CN201910630509 A CN 201910630509A CN 110392100 B CN110392100 B CN 110392100B
- Authority
- CN
- China
- Prior art keywords
- request
- service
- log file
- service request
- abnormal
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种高并发事件的处理方法及装置、存储介质、计算机设备,该方法包括:对接收到的业务请求进行解析,得到业务请求对应的业务类型;基于业务请求的接收时间,在业务类型对应的目录下新建请求日志文件,并将业务请求写入与业务类型相应的请求日志文件中;在当前的系统资源占用量大于预设资源占用异常阈值时,基于当前时间以及业务请求的接收时间,对请求日志文件中的异常业务请求标记异常请求标记。本申请在系统资源不足时,将尖峰流量的业务请求对应的请求日志文件进行标记,而不对写入请求日志文件中的业务请求进行消费,避免了服务器在尖峰流量时,因收到的业务请求量超出服务器的正常可处理范围,容易造成业务请求丢失的问题。
Description
技术领域
本申请涉及数据处理技术领域,尤其是涉及到一种高并发事件的处理方法及装置、存储介质、计算机设备。
背景技术
在实际的业务场景中,请求流量可能并不会均匀的分布于每天24小时中的每一小时内。可能热点的某一小时峰值请求量会达到低峰期的几倍甚至几十倍。
现有技术中,通常将峰值请求流量基于网络请求同步到其他服务器中,流量同步的稳定性、时效性会依赖于网络的稳定性。并且,进行网络请求同步也会占用服务器资源。
发明内容
有鉴于此,本申请提供了一种高并发事件的处理方法及装置、存储介质、计算机设备,在系统资源不足时,将尖峰流量的业务请求对应的请求日志文件进行标记,而不对写入请求日志文件中的业务请求进行消费,避免了服务器在尖峰流量时,由于服务器收到大量业务请求,超出服务器的正常可处理范围,容易造成服务器崩溃,导致业务请求丢失的问题。
根据本申请的一个方面,提供了一种高并发事件的处理方法,包括:
对接收到的业务请求进行解析,得到所述业务请求对应的业务类型;
基于所述业务请求的接收时间,在所述业务类型对应的目录下新建请求日志文件,并将所述业务请求写入与所述业务类型相应的请求日志文件中;
在当前的系统资源占用量大于预设资源占用异常阈值时,基于当前时间以及所述业务请求的接收时间,对所述请求日志文件中的异常业务请求标记异常请求标记,其中,所述异常业务请求包括所述当前时间以及所述当前时间后的预设时间内接收到的所述业务请求。
具体地,所述将所述业务请求写入与所述业务类型相应的请求日志文件中之后,所述方法还包括:
所述业务请求在所述请求日志文件中写入完成后,关闭所述请求日志文件。
具体地,所述在当前的系统资源占用量大于预设资源占用异常阈值时,基于当前时间以及所述业务请求的接收时间,对所述请求日志文件中的异常业务请求进行标记之后,所述方法还包括:
在所述系统资源占用量低于预设异步触发阈值时,获取所述异常请求标记;
基于所述异常请求标记读取所述业务日志文件中的所述业务请求。
具体地,所述基于所述业务请求的接收时间,在所述业务类型对应的目录下新建请求日志文件,并将所述业务请求写入与所述业务类型相应的请求日志文件中,具体包括:
基于所述业务请求的接收时间,在所述业务类型对应的目录下新建以所述接收时间命名的所述请求日志文件;
将所述业务请求写入与所述接收时间命名一致的所述请求日志文件中。
具体地,任一所述业务类型的目录对应一个常驻请求读取线程,所述基于所述异常请求标记读取所述业务日志文件中的所述业务请求,具体包括:
若所述常驻请求读取线程处于空闲状态,则按照升序排列相应的所述目录下的全部已关闭的所述业务日志文件,并依次读取排序后的所述业务日志文件。
具体地,若写入所述请求日志文件的所述业务请求对应的字符长度超出预设单位文件长度阈值,则上报所述业务请求,并继续写入下一个所述接收时间对应的所述业务请求。
具体地,所述所述业务请求在所述请求日志文件中写入完成后,关闭所述请求日志文件之后,所述方法还包括:
将关闭的所述请求日志文件记录在待读取文件列表中;
所述基于所述异常请求标记读取所述业务日志文件中的所述业务请求,具体包括:
基于所述异常请求标记,从所述业务日志文件中读取所述待读取文件列表中记录的所述请求日志文件,得到所述业务请求。
根据本申请的另一方面,提供了一种高并发事件的处理装置,包括:
业务请求接收模块,用于对接收到的业务请求进行解析,得到所述业务请求对应的业务类型;
业务请求写入模块,用于基于所述业务请求的接收时间,在所述业务类型对应的目录下新建请求日志文件,并将所述业务请求写入与所述业务类型相应的请求日志文件中;
异常请求标记模块,用于在当前的系统资源占用量大于预设资源占用异常阈值时,基于当前时间以及所述业务请求的接收时间,对所述请求日志文件中的异常业务请求标记异常请求标记,其中,所述异常业务请求包括所述当前时间以及所述当前时间后的预设时间内接收到的所述业务请求。
具体地,所述装置还包括:
文件关闭模块,用于所述将所述业务请求写入与所述业务类型相应的请求日志文件中之后,所述业务请求在所述请求日志文件中写入完成后,关闭所述请求日志文件。
具体地,所述装置还包括:
异常标记获取模块,用于所述在当前的系统资源占用量大于预设资源占用异常阈值时,基于当前时间以及所述业务请求的接收时间,对所述请求日志文件中的异常业务请求进行标记之后,在所述系统资源占用量低于预设异步触发阈值时,获取所述异常请求标记;
业务请求读取模块,用于基于所述异常请求标记读取所述业务日志文件中的所述业务请求。
具体地,所述业务请求写入模块,具体包括:
命名单元,用于基于所述业务请求的接收时间,在所述业务类型对应的目录下新建以所述接收时间命名的所述请求日志文件;
写入单元,用于将所述业务请求写入与所述接收时间命名一致的所述请求日志文件中。
具体地,任一所述业务类型的目录对应一个常驻请求读取线程,所述业务请求读取模块,具体包括:
排序读取单元,用于若所述常驻请求读取线程处于空闲状态,则按照升序排列相应的所述目录下的全部已关闭的所述业务日志文件,并依次读取排序后的所述业务日志文件。
具体地,若写入所述请求日志文件的所述业务请求对应的字符长度超出预设单位文件长度阈值,则上报所述业务请求,并继续写入下一个所述接收时间对应的所述业务请求。
具体地,所述装置还包括:
待读取文件记录模块,用于所述所述业务请求在所述请求日志文件中写入完成后,关闭所述请求日志文件之后,将关闭的所述请求日志文件记录在待读取文件列表中;
所述业务请求读取模块,具体包括:
通知读取单元,用于基于所述异常请求标记,从所述业务日志文件中读取所述待读取文件列表中记录的所述请求日志文件,得到所述业务请求。
依据本申请又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述高并发事件的处理方法。
依据本申请再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述高并发事件的处理方法。
借由上述技术方案,本申请提供的一种高并发事件的处理方法及装置、存储介质、计算机设备,将服务器接收到的业务请求解析,确认业务请求对应的业务类型后,基于业务类型在相应的存储目录下,按照业务请求的接收时间新建请求日志文件,并将相应的业务请求写入请求日志文件中进行存储,另外,对于已写入的业务请求,若系统资源充足可以直接进行消费,而若系统资源不足,则将请求日志文件中标注异常请求标记。本申请实施例在系统资源不足时,将尖峰流量的业务请求对应的请求日志文件进行标记,而不对写入请求日志文件中的业务请求进行消费,避免了服务器在尖峰流量时,由于服务器收到大量业务请求,超出服务器的正常可处理范围,容易造成服务器崩溃,导致业务请求丢失的问题。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例提供的一种高并发事件的处理方法的流程示意图;
图2示出了本申请实施例提供的另一种高并发事件的处理方法的流程示意图;
图3示出了本申请实施例提供的一种高并发事件的处理装置的结构示意图;
图4示出了本申请实施例提供的另一种高并发事件的处理装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在本实施例中提供了一种高并发事件的处理方法,如图1所示,该方法包括:
步骤101,对接收到的业务请求进行解析,得到业务请求对应的业务类型。
本申请实施例提供的高并发事件的处理方法,主要用于解决由于服务器收到大量业务请求,超出服务器的正常可处理范围,容易造成服务器崩溃,导致业务请求丢失的问题。
基于此,为了避免服务器接收到的业务请求丢失,本申请实施例可以将接收到的业务请求进行持久化本地保存,因此,在上述步骤101中,对接收到的业务请求进行解析,从而可以得到接收到的业务请求具体的业务类型,以便基于业务请求的业务类型存储业务请求。
步骤102,基于业务请求的接收时间,在业务类型对应的目录下新建请求日志文件,并将业务请求写入与业务类型相应的请求日志文件中。
每一种业务类型在服务器本地的存储空间下都对应于一个存储目录,在已知业务请求的业务类型的前提下,可以将不同类型的业务请求分别写入对应的存储目录下进行保存。具体来说,本申请实施例的请求写入方式基于业务请求的接收时间,在同一时间接收到的业务请求写入同一个请求日志文件中。具体的接收时间颗粒度基于服务器性能进行设定,本申请实施例的接收时间可以精确到纳秒级别,也就是说,在1纳秒内接收到的相同类型的业务请求,将会写入相应业务类型的目录下的同一个新建的请求日志文件中。
步骤103,在当前的系统资源占用量大于预设资源占用异常阈值时,基于当前时间以及业务请求的接收时间,对请求日志文件中的异常业务请求标记异常请求标记,其中,异常业务请求包括当前时间以及当前时间后的预设时间内接收到的业务请求。
对于系统资源不充足的情况,即服务器的系统资源占用量超过事先约定的预设资源占用异常阈值时,应在请求日志文件中对高并发流量部分即当前时间及其一段时间后接收到的业务请求进行标记,已实现尖峰流量的标记,使这一段时间内的业务请求被标明上异常请求的标记,以便在系统资源充足时,依据业务请求的异常请求标记进行业务请求的消费。
而如果系统资源始终充足,可以直接基于请求日志文件对文件中的业务请求进行消费,无需进行异常请求标记。
需要说明的是,本申请实施例中,系统资源充足与否,可以依据单位时间内接收到的业务请求的数量、系统CPU占用率、内存使用率、网络吞吐量以及网络延迟情况等方面考虑,从而分析系统资源是否充足的结论。当然,本领域技术人员还可以基于其他内容衡量系统资源是否充足,在此不做限定。
通过应用本实施例的技术方案,将服务器接收到的业务请求解析,确认业务请求对应的业务类型后,基于业务类型在相应的存储目录下,按照业务请求的接收时间新建请求日志文件,并将相应的业务请求写入请求日志文件中进行存储,另外,对于已写入的业务请求,若系统资源充足可以直接进行消费,而若系统资源不足,则将请求日志文件中标注异常请求标记。本申请实施例在系统资源不足时,将尖峰流量的业务请求对应的请求日志文件进行标记,而不对写入请求日志文件中的业务请求进行消费,避免了服务器在尖峰流量时,由于服务器收到大量业务请求,超出服务器的正常可处理范围,容易造成服务器崩溃,导致业务请求丢失的问题。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,提供了另一种高并发事件的处理方法,如图2所示,该方法包括:
步骤201,对接收到的业务请求进行解析,得到业务请求对应的业务类型。
步骤202,基于业务请求的接收时间,在业务类型对应的目录下新建以接收时间命名的请求日志文件。
新建请求日志文件时,文件的名称与业务请求的接收时间一致,不对文件进行覆盖式命名。例如2018年8月22日21时12分57秒550006851纳秒接收的业务请求,对应的请求日志文件就可以命名为“2018.08.22.21.12.57.550006851”,在2018年8月22日21时12分57秒550006851纳秒接收到的全部的业务请求都写入至这个文件中。
步骤203,将业务请求写入与接收时间命名一致的请求日志文件中。
将同一接收时间的业务请求写入相应的请求日志文件中进行保存,也就是说,同一个请求日志文件中可以写入一条业务请求,也可以写入多条业务请求。
在本申请实施例中,具体地,若写入请求日志文件的业务请求对应的字符长度超出预设单位文件长度阈值,则上报业务请求,并继续写入下一个接收时间对应的业务请求。
在上述实施例中,对于每个请求日志文件来说,对请求日志文件的最大写入行数或者最大写入字符数进行限定,若写入某一个请求日志文件的业务请求超出预设的行数限定阈值,或者说写入请求日志文件的业务请求对应的字符长度超出预设单位文件长度阈值,说明在同一时间内接收的业务请求量过多,由于最大写入行数或预设单位文件长度阈值一般是依据实际的尖峰流量大小情况进行估算的,这个范围内能够包含几乎全部的尖峰流量时间段业务请求接收量,对于这种较为少见的一个请求日志文件无法写入相应的全部业务请求的极端情况,本申请实施例将进行上报,并继续写入下一个接收时间的业务请求,以免因为这种极端情况,影响后续的业务请求写入,从而提高了业务请求写入效率。
步骤204,业务请求在请求日志文件中写入完成后,关闭请求日志文件。
在上述实施例中,当同一接收时间对应的业务请求全部写入相应的请求日志文件后,将该文件关闭。
步骤205,在当前的系统资源占用量大于预设资源占用异常阈值时,基于当前时间以及业务请求的接收时间,对请求日志文件中的异常业务请求标记异常请求标记,其中,异常业务请求包括当前时间以及当前时间后的预设时间内接收到的业务请求。
在系统资源不充足,即系统资源占用量大于预设资源占用异常阈值时,进行异常请求的标记操作。
步骤206,在系统资源占用量低于预设异步触发阈值时,获取异常请求标记。
当系统资源占用量低于预设异步触发阈值时,或者是系统资源充足,可以对之前写入到请求日志文件中未被消费的业务请求进行处理时,获取请求日志文件的异常请求标记,从而可以依据异常请求标记确定还未被消费的业务请求。
步骤207,基于异常请求标记读取业务日志文件中的业务请求。
基于获取的异常请求标记读取业务日志文件中的业务请求,以实现异步触发流量恢复。
本申请实施例提供了两种基于异常请求标记读取业务请求的具体实施方式。
第一种实施方式:
步骤2071,若常驻请求读取线程处于空闲状态,则按照升序排列相应的目录下的全部已关闭的业务日志文件,并依次读取排序后的业务日志文件。其中,任一业务类型的目录对应一个常驻请求读取线程。
每一个业务类型的目录都对应有唯一的一个常驻请求读取线程,当常驻请求读取线程完成一个业务日志文件的读取时,即该线程处于空闲状态时,扫描该目录下的所有文件,将正在写入业务请求的文件过滤掉,对剩余的已关闭的全部业务日志文件进行升序排列,由于文件是按照业务请求的接收时间命名的,因此升序排列后从前至后的文件顺序即为相应业务请求的接收顺序,对排序后的业务日志文件依次读取,即可按照接收时间从早到晚的顺序依次处理业务请求。
第二种实施方式:
步骤2072,将关闭的请求日志文件记录在待读取文件列表中;
步骤2073,基于异常请求标记,从业务日志文件中读取待读取文件列表中记录的请求日志文件,得到业务请求。
每当同一接收时间的业务请求写入相应的请求日志文件完成,文件被关闭后,每关闭一个请求日志文件,则即时通知该文件已经可以被消费,或将关闭的请求日志文件记录在待读取文件列表中,从而基于异常请求标记,从待读取文件列表中读取带有异常请求标记的请求日志文件,从而恢复请求日志文件中写入的业务请求,实现尖峰流量恢复。
需要补充的是,在读取请求日志文件时,应实时记录当前的读取进度,以便在系统意外崩溃后进行恢复。
需要说明的是,上述任一种实施方式,写入消息的任务都是独占式写入,不会和消费任务产生竞争关系,当前写入的业务请求必定不会立刻被消费,而是必须等到该文件关闭之后才能进行消费,能够保证业务请求消息写入不阻塞,有助于业务请求完整的写入在相应文件中,实现持久化本地保存,从而在系统资源充足时,再将未消费的业务请求进行恢复,实现任务异步的低并发消费,以完成流量削峰。
另外,将业务请求写入请求日志文件时,可以将业务请求以预设格式进行编码,并在读取业务请求时进行解码。例如以base64编码按行存储,相应的,在读取请求日志文件中的业务请求时,需要按行读取文件,并进行base64解码。
通过应用本实施例的技术方案,将高并发的业务请求先持久化到本地文件中进行存储,然后由另一个任务异步的进行低并发的消费,从而实现流量削峰的目的,避免服务器收到大量请求超出正常可处理范围时,造成响应缓慢,严重可能会导致服务器崩溃,甚至导致请求全部丢失的情况发生。现有开源消息队列文件大部分都是独立于业务模块,依赖网络通信的独立服务。本申请与其他同类消息队列最大的区别是使用了本地文件进行数据存储,对存储流量进行回放只需拷贝日志文件,即可随时随地进行恢复。同时使用文件的形式存储,可靠性高于直接存储在内存中。请求内容即日志,省去单独写消息队列操作的开销,更加高效。
进一步的,作为图1方法的具体实现,本申请实施例提供了一种高并发事件的处理装置,如图3所示,该装置包括:业务请求接收模块31、业务请求写入模块32、异常请求标记模块33。
业务请求接收模块31,用于对接收到的业务请求进行解析,得到业务请求对应的业务类型;
业务请求写入模块32,用于基于业务请求的接收时间,在业务类型对应的目录下新建请求日志文件,并将业务请求写入与业务类型相应的请求日志文件中;
异常请求标记模块33,用于在当前的系统资源占用量大于预设资源占用异常阈值时,基于当前时间以及业务请求的接收时间,对请求日志文件中的异常业务请求标记异常请求标记,其中,异常业务请求包括当前时间以及当前时间后的预设时间内接收到的业务请求。
在具体的应用场景中,该装置还包括:文件关闭模块34、异常标记获取模块35、业务请求读取模块36。
文件关闭模块34,用于将业务请求写入与业务类型相应的请求日志文件中之后,业务请求在请求日志文件中写入完成后,关闭请求日志文件。
异常标记获取模块35,用于在当前的系统资源占用量大于预设资源占用异常阈值时,基于当前时间以及业务请求的接收时间,对请求日志文件中的异常业务请求进行标记之后,在系统资源占用量低于预设异步触发阈值时,获取异常请求标记;
业务请求读取模块36,用于基于异常请求标记读取业务日志文件中的业务请求。
在具体的应用场景中,业务请求写入模块32,具体包括:命名单元321、写入单元322。
命名单元321,用于基于业务请求的接收时间,在业务类型对应的目录下新建以接收时间命名的请求日志文件;
写入单元322,用于将业务请求写入与接收时间命名一致的请求日志文件中。
在具体的应用场景中,任一业务类型的目录对应一个常驻请求读取线程,业务请求读取模块36,具体包括:排序读取单元361。
排序读取单元361,用于若常驻请求读取线程处于空闲状态,则按照升序排列相应的目录下的全部已关闭的业务日志文件,并依次读取排序后的业务日志文件。
在具体的应用场景中,若写入请求日志文件的业务请求对应的字符长度超出预设单位文件长度阈值,则上报业务请求,并继续写入下一个接收时间对应的业务请求。
在具体的应用场景中,该装置还包括:待读取文件记录模块37。
待读取文件记录模块37,用于业务请求在请求日志文件中写入完成后,关闭请求日志文件之后,将关闭的请求日志文件记录在待读取文件列表中;
业务请求读取模块36,具体包括:通知读取单元362。
通知读取单元362,用于基于异常请求标记,从业务日志文件中读取待读取文件列表中记录的请求日志文件,得到业务请求。
需要说明的是,本申请实施例提供的一种高并发事件的处理装置所涉及各功能单元的其他相应描述,可以参考图1和图2中的对应描述,在此不再赘述。
基于上述如图1和图2所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1和图2所示的高并发事件的处理方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
基于上述如图1、图2所示的方法,以及图3、图4所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1和图2所示的高并发事件的处理方法。
可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理和保存计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现将服务器接收到的业务请求解析,确认业务请求对应的业务类型后,基于业务类型在相应的存储目录下,按照业务请求的接收时间新建请求日志文件,并将相应的业务请求写入请求日志文件中进行存储,另外,对于已写入的业务请求,若系统资源充足可以直接进行消费,而若系统资源不足,则将请求日志文件中标注异常请求标记。本申请实施例在系统资源不足时,将尖峰流量的业务请求对应的请求日志文件进行标记,而不对写入请求日志文件中的业务请求进行消费,避免了服务器在尖峰流量时,由于服务器收到大量业务请求,超出服务器的正常可处理范围,容易造成服务器崩溃,导致业务请求丢失的问题。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (9)
1.一种高并发事件的处理方法,其特征在于,包括:
对接收到的业务请求进行解析,得到所述业务请求对应的业务类型;
基于所述业务请求的接收时间,在所述业务类型对应的目录下新建请求日志文件,并将所述业务请求写入与所述业务类型相应的请求日志文件中;
在当前的系统资源占用量大于预设资源占用异常阈值时,基于当前时间以及所述业务请求的接收时间,对所述请求日志文件中的异常业务请求标记异常请求标记,其中,所述异常业务请求包括所述当前时间以及所述当前时间后的预设时间内接收到的所述业务请求;
在所述系统资源占用量低于预设异步触发阈值时,获取所述异常请求标记;
基于所述异常请求标记读取业务日志文件中的所述业务请求。
2.根据权利要求1所述的方法,其特征在于,所述将所述业务请求写入与所述业务类型相应的请求日志文件中之后,所述方法还包括:
所述业务请求在所述请求日志文件中写入完成后,关闭所述请求日志文件。
3.根据权利要求1所述的方法,其特征在于,所述基于所述业务请求的接收时间,在所述业务类型对应的目录下新建请求日志文件,并将所述业务请求写入与所述业务类型相应的请求日志文件中,具体包括:
基于所述业务请求的接收时间,在所述业务类型对应的目录下新建以所述接收时间命名的所述请求日志文件;
将所述业务请求写入与所述接收时间命名一致的所述请求日志文件中。
4.根据权利要求3所述的方法,其特征在于,任一所述业务类型的目录对应一个常驻请求读取线程,所述基于所述异常请求标记读取所述业务日志文件中的所述业务请求,具体包括:
若所述常驻请求读取线程处于空闲状态,则按照升序排列相应的所述目录下的全部已关闭的所述业务日志文件,并依次读取排序后的所述业务日志文件。
5.根据权利要求1至4中任一项所述的方法,其特征在于,
若写入所述请求日志文件的所述业务请求对应的字符长度超出预设单位文件长度阈值,则上报所述业务请求,并继续写入下一个所述接收时间对应的所述业务请求。
6.根据权利要求1所述的方法,其特征在于,所述业务请求在所述请求日志文件中写入完成后,关闭所述请求日志文件之后,所述方法还包括:
将关闭的所述请求日志文件记录在待读取文件列表中;
所述基于所述异常请求标记读取所述业务日志文件中的所述业务请求,具体包括:
基于所述异常请求标记,从所述业务日志文件中读取所述待读取文件列表中记录的所述请求日志文件,得到所述业务请求。
7.一种高并发事件的处理装置,其特征在于,包括:
业务请求接收模块,用于对接收到的业务请求进行解析,得到所述业务请求对应的业务类型;
业务请求写入模块,用于基于所述业务请求的接收时间,在所述业务类型对应的目录下新建请求日志文件,并将所述业务请求写入与所述业务类型相应的请求日志文件中;
异常请求标记模块,用于在当前的系统资源占用量大于预设资源占用异常阈值时,基于当前时间以及所述业务请求的接收时间,对所述请求日志文件中的异常业务请求标记异常请求标记,其中,所述异常业务请求包括所述当前时间以及所述当前时间后的预设时间内接收到的所述业务请求;
所述异常请求标记模块还用于,在所述系统资源占用量低于预设异步触发阈值时,获取所述异常请求标记;
基于所述异常请求标记读取所述业务日志文件中的所述业务请求。
8.一种存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至6中任一项所述的高并发事件的处理方法。
9.一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6中任一项所述的高并发事件的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910630509.7A CN110392100B (zh) | 2019-07-12 | 2019-07-12 | 高并发事件的处理方法及装置、存储介质、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910630509.7A CN110392100B (zh) | 2019-07-12 | 2019-07-12 | 高并发事件的处理方法及装置、存储介质、计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110392100A CN110392100A (zh) | 2019-10-29 |
CN110392100B true CN110392100B (zh) | 2022-03-11 |
Family
ID=68286452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910630509.7A Active CN110392100B (zh) | 2019-07-12 | 2019-07-12 | 高并发事件的处理方法及装置、存储介质、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110392100B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908838B (zh) * | 2019-11-19 | 2022-09-02 | 杭州安恒信息技术股份有限公司 | 一种数据处理方法、装置及电子设备和存储介质 |
CN113094329A (zh) * | 2019-12-23 | 2021-07-09 | 浙江宇视科技有限公司 | 一种多媒体文件存储方法、装置、设备和存储介质 |
CN111352988B (zh) * | 2020-02-29 | 2023-05-23 | 重庆百事得大牛机器人有限公司 | 针对法务信息的大数据仓库存储、分析、提取系统 |
CN111427674A (zh) * | 2020-03-19 | 2020-07-17 | 成都云盯科技有限公司 | 一种微服务管理方法、装置及系统 |
CN112783672B (zh) * | 2021-01-27 | 2024-04-05 | 传神语联网网络科技股份有限公司 | 一种远程过程调用处理方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107123046A (zh) * | 2017-04-14 | 2017-09-01 | 北京金融资产交易所有限公司 | 基于债券交易的处理系统及其日志处理方法 |
CN107229555A (zh) * | 2017-05-04 | 2017-10-03 | 北京小度信息科技有限公司 | 标识生成方法和装置 |
CN107678933A (zh) * | 2017-09-28 | 2018-02-09 | 中国平安人寿保险股份有限公司 | 日志生成管理方法、装置、设备及计算机可读存储介质 |
CN109614379A (zh) * | 2018-10-22 | 2019-04-12 | 中国平安人寿保险股份有限公司 | 日志输出方法、装置、计算机存储介质和计算机设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9736243B2 (en) * | 2014-12-12 | 2017-08-15 | Microsoft Technology Licensing, Llc | Multiple transaction logs in a distributed storage system |
-
2019
- 2019-07-12 CN CN201910630509.7A patent/CN110392100B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107123046A (zh) * | 2017-04-14 | 2017-09-01 | 北京金融资产交易所有限公司 | 基于债券交易的处理系统及其日志处理方法 |
CN107229555A (zh) * | 2017-05-04 | 2017-10-03 | 北京小度信息科技有限公司 | 标识生成方法和装置 |
CN107678933A (zh) * | 2017-09-28 | 2018-02-09 | 中国平安人寿保险股份有限公司 | 日志生成管理方法、装置、设备及计算机可读存储介质 |
CN109614379A (zh) * | 2018-10-22 | 2019-04-12 | 中国平安人寿保险股份有限公司 | 日志输出方法、装置、计算机存储介质和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110392100A (zh) | 2019-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110392100B (zh) | 高并发事件的处理方法及装置、存储介质、计算机设备 | |
EP3522042A1 (en) | Method and apparatus for information processing, server and computer readable medium | |
US10606806B2 (en) | Method and apparatus for storing time series data | |
CN111177165B (zh) | 数据一致性检测的方法、装置及设备 | |
CN103365882A (zh) | 一种移动终端上垃圾文件清理的方法和系统 | |
CN107506145B (zh) | 一种物理存储调度方法及云主机创建方法 | |
CN114564460B (zh) | 基于分布式存储系统的参数调优方法、装置、设备及介质 | |
CN106484313B (zh) | 数据信息备份方法、数据备份方法及装置 | |
CN103856516A (zh) | 数据存储、读取方法及数据存储、读取装置 | |
CN110930291A (zh) | 一种gpu显存管理控制方法及相关装置 | |
CN114003439B (zh) | 数据备份方法、装置、设备及存储介质 | |
CN103595808A (zh) | 一种文件更新信息推送方法及装置 | |
CN114356581A (zh) | 一种内存的清理方法及相关设备 | |
CN116881051B (zh) | 一种数据备份与恢复方法、装置、电子设备和存储介质 | |
CN110012436A (zh) | 用户位置确定方法、装置、设备及计算机可读存储介质 | |
CN109067864B (zh) | 通知消息推送方法、装置及电子设备 | |
CN110442439B (zh) | 任务进程处理方法、装置和计算机设备 | |
CN111984198A (zh) | 消息队列实现方法、装置及电子设备 | |
CN116521639A (zh) | 一种日志数据的处理方法、电子设备和计算机可读介质 | |
CN114089912B (zh) | 基于消息中间件的数据处理方法及装置、存储介质 | |
CN112799872B (zh) | 一种基于键值对存储系统的纠删码编码方法及装置 | |
CN112685360A (zh) | 内存数据的持久化方法及装置、存储介质、计算机设备 | |
CN112260965A (zh) | 一种消息处理方法、装置、设备及存储介质 | |
CN109947371B (zh) | 数据记录方法、装置、存储器及t-box | |
CN110069220B (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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Li Jinling Inventor after: Liu Mengnan Inventor after: Yang Chunhua Inventor before: Zhao Haiyang Inventor before: Liu Mengnan Inventor before: Liu Li Inventor before: Liu Handong Inventor before: Yang Chunhua Inventor before: Yu Xin Inventor before: Li Yilong |
|
CB03 | Change of inventor or designer information |