本发明专利技术公开了一种基于多线程处理的容灾方法,该方法包括:接收到用户请求,初始化新建多个线程;根据预设的判断条件对用户请求进行判断;根据判断的结果,把用户请求的数据通过线程同时传输到缓存队列中;根据缓存队列的设置,对用户请求的数据进行存储。该系统包括:运行模块、判断模块、传输模块以及存储模块。该装置包括存储器以及用于执行上述基于多线程处理的容灾方法的处理器。通过使用本发明专利技术,可避免由存储数据的服务器宕机所造成的损失。本发明专利技术作为一种基于多线程处理的容灾方法、系统及装置可广泛应用于数据处理领域中。
A disaster recovery method, system and device based on Multithreading
【技术实现步骤摘要】
一种基于多线程处理的容灾方法、系统及装置
本专利技术涉及数据处理领域,尤其涉及一种基于多线程处理的容灾方法、系统及装置。
技术介绍
目前,大部分的容灾方案都是以两个或多个服务器来存储相同且全部的数据,当一个服务器宕机或者维护时,则启用另外一个服务器,其中大部分是使用数据库如mysql来存储数据,当大量的并发请求发生时,数据库是扛不住的,而且在某些情况下,需要实时迅速的对请求进行确认并且读取数据,但是mysql的数据是存储到硬盘上的,比较低速的读取,不适用于面向实时存储与访问数据的情况。
技术实现思路
为了解决上述技术问题,本专利技术的目的是提供一种基于多线程处理的容灾方法、系统及装置,可避免由存储数据的服务器宕机所造成的损失。本专利技术所采用的第一技术方案是:一种基于多线程处理的容灾方法,包括以下步骤:接收到用户请求,初始化新建多个线程;根据预设的判断条件对用户请求进行判断;根据判断的结果,把用户请求的数据通过线程同时传输到缓存队列中;根据缓存队列的设置,对用户请求的数据进行存储。进一步,所述缓存队列是基于redis实现的缓存队列。进一步,所述多个线程中的第一个线程用于运行判断请求是否符合要求的任务,其余线程用于运行把数据传输到各个缓存队列的任务。进一步,所述缓存队列包括第一类redis缓存队列和第二类redis缓存队列,所述第一类redis缓存队列用于存储预设周期内的数据,所述第二类redis缓存队列用于存储全部数据。进一步,所述根据缓存队列的设置,对用户请求的数据进行存储,还包括有以下步骤:将第二类redis缓存队列的数据存储到硬盘。进一步,当其中一个缓存队列需要维护或发生错误时,调用其他缓存队列对用户请求的数据进行存储。进一步,所述预设的判断条件是以时间期限来进行判断。本专利技术所采用的第二技术方案是:一种基于多线程处理的容灾系统,包括:运行模块,用于接收到用户请求,初始化新建多个线程;判断模块,用于根据预设的判断条件对用户请求进行判断;传输模块,用于根据判断的结果,把用户请求的数据通过线程同时传输到缓存队列中;存储模块,用于根据缓存队列的设置,对用户请求的数据进行存储。本专利技术所采用的第三技术方案是:一种基于多线程处理的容灾装置,包括:至少一个处理器;至少一个存储器,用于存储至少一个程序;当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述一种基于多线程处理的容灾方法。本专利技术方法、装置及系统的有益效果是:本专利技术通过基于redis实现的缓存队列来对数据进行存储,并且具有多个存储队列,基于每个缓存队列的功能来做独立事件的处理,当其中一个缓存队列需要维护或出现错误时,可以调用其他缓存队列来进行正常的存储和和查询功能,还包括有把全部数据存储到硬盘里作全部数据备份,由于使用的redis缓存队列存储数据,可以更加快速的得到数据。附图说明图1是本专利技术一种基于多线程处理的容灾方法的步骤流程图;图2是本专利技术一种具体实施例结构框图;具体实施方式下面结合附图和具体实施例对本专利技术做进一步的详细说明。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。如图1所示,本专利技术一种基于多线程处理的容灾方法,该方法包括以下步骤:S101、接收到用户请求,初始化新建多个线程;具体地,所述多个线程的数量设置应比缓存队列的数量多一个,因为第一个线程用于执行对用户请求进行判断的任务。S102、根据预设的判断条件对用户请求进行判断;S103、根据判断的结果,把用户请求的数据通过线程同时传输到缓存队列中;具体地,根据判断的结果,如果是符合条件的用户请求,则把数据传输到缓存队列中,如不符合,则删除该数据并发出警告信息,其中,缓存队列的数量和设置可以按照用户需要来变更。S104、根据缓存队列的设置,对用户请求的数据进行存储;进一步作为本方法的优选实施例,所述缓存队列是基于redis实现的缓存队列。进一步作为本方法的优选实施例,所述多个线程中的第一个线程用于运行判断请求是否符合要求的任务,其余线程用于运行把数据传输到各个缓存队列的任务。进一步作为本方法的优选实施例,所述缓存队列包括第一类redis缓存队列和第二类redis缓存队列,第一类redis缓存队列用于存储预设周期内的数据,所述第二类redis缓存队列用于存储全部数据。具体地,由于redis缓存队列存储空间有限,所以第一类缓存队列包括多个缓存队列,每个缓存队列分别存储部分符合缓存队列设置的数据,其中每个队列存储的数据两两之间具有相同的部分,通过这样来达到容灾备份的目的,又可以解决redis缓存队列存储空间不足的问题。进一步作为本方法的优选实施例,根据缓存队列的设置,对用户请求的数据进行存储,还包括有以下步骤:将第二类redis缓存队列的数据存储到硬盘。具体地,把全存储的缓存队列的数据存储到硬盘,因为硬盘的容量足够,可以存储所有的数据,进一步提高数据存储的安全性。进一步作为本方法的优选实施例,当其中一个缓存队列需要维护或发生错误时,调用其他缓存队列对用户请求的数据进行存储。进一步作为本方法的优选实施例,所述预设的判断条件是以目标时间期限来进行判断。其中,预设的判断条件可以根据需要改成发出请求的时间或其他条件。以下结合最优的实际应用实施例来对本专利技术做更进一步的详细阐述。本专利技术具体实施例如下:接收到用户请求,初始化新建六个线程,第一个线程用于对用户请求是进行是否符合要求的,其余线程用于运行把数据传输到缓存队列的任务,预设判断条件为用户请求的目标时间在当前时刻的之后五分钟外,并且该请求的目标时间是在当前时刻的之后十年内,如果用户请求符合该要求,则把该用户请求的数据传输到缓存队列中,其中,在本具体实施例,缓存队列是基于redis实现的缓存队列,包括第一redis缓存队列、第二redis缓存队列、第三redis缓存队列、第四redis缓存队列和第五redis缓存队列,第一redis缓存队列用于缓存单日数据,第二redis缓存队列用于缓存双日数据,第三redis缓存队列用于缓存近三日的数据,第四redis缓存队列用于缓存全部的数据,第五缓存redis队列用于缓存近3小时的数据,当数据传输到redis缓存队列,如果符合该redis缓存队列所设范围,则进行存储操作,如果不符合,则忽略,超出redis缓存队列的所设范围则通过删除模块把超出的数据删掉,最后将redis第四缓存队列的数据存储到硬盘以进行全部数据备份。如图2所示,一种基于多线程处理的容灾系统,包括:运行模块,用于接收到用户请求,初始化新建多个线程;判断模块,用本文档来自技高网...
【技术保护点】
1.一种基于多线程处理的容灾方法,其特征在于:包括以下步骤:/n接收到用户请求,初始化新建多个线程;/n根据预设的判断条件对用户请求进行判断;/n根据判断的结果,把通过判断的用户请求的数据通过线程同时传输到缓存队列中;/n根据缓存队列的设置,对用户请求的数据进行存储。/n
【技术特征摘要】
1.一种基于多线程处理的容灾方法,其特征在于:包括以下步骤:
接收到用户请求,初始化新建多个线程;
根据预设的判断条件对用户请求进行判断;
根据判断的结果,把通过判断的用户请求的数据通过线程同时传输到缓存队列中;
根据缓存队列的设置,对用户请求的数据进行存储。
2.根据权利要求1所述一种基于多线程处理的容灾方法,其特征在于:所述缓存队列是基于redis实现的缓存队列。
3.根据权利要求1所述一种基于多线程处理的容灾方法,其特征在于:所述多个线程中的第一个线程用于运行判断请求是否符合要求的任务,其余线程用于运行把数据传输到各个缓存队列的任务。
4.根据权利要求2所述一种基于多线程处理的容灾方法,其特征在于:所述缓存队列包括第一类redis缓存队列和第二类redis缓存队列,所述第一类redis缓存队列用于存储预设周期内的数据,所述第二类redis缓存队列用于存储全部数据。
5.根据权利要求4所述一种基于多线程处理的容灾方法,其特征在于:还包括有以下步骤:
将第二类redis缓存队列的数据存储到硬盘。
6...
【专利技术属性】
技术研发人员:张俊伟,
申请(专利权)人:无锡天脉聚源传媒科技有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。