[发明专利]一种对高并发或大量业务的处理方法及系统在审
申请号: | 202111468596.4 | 申请日: | 2021-12-03 |
公开(公告)号: | CN114217985A | 公开(公告)日: | 2022-03-22 |
发明(设计)人: | 叶明;朱作飞;侯超 | 申请(专利权)人: | 成都旋极历通信息技术有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 成都华烨专利代理事务所(普通合伙) 51336 | 代理人: | 严刘英 |
地址: | 610000 四川省成都市武侯区*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 并发 大量 业务 处理 方法 系统 | ||
本发明公开了一种对高并发或大量业务的处理方法及系统,本发明对高并发下业务逻辑分布处理,避免了其中一个模块失败影响下一个模块。失败模块可以再次重新执行,避免了业务中断,减少了恢复工作量,提高了数据准确性。还可以通过获取序列号得到整个业务进行到哪一步了,方便再次执行和问题排查,进行自动或人工恢复数据。本发明适用于分布式集群架构,可以提高队列的消费能力,避免队列消费不及时导致的阻塞。
技术领域
本发明涉及计算机数据处理领域,具体涉及一种对高并发或大量业务的处理方法及系统。
背景技术
目前针对高并发数据大量采用队列中间件进行处理,例如现在主流的队列有rabbitMQ、kafak、RocketMQ等,但是在队列中进行大量逻辑处理,如果其中一处逻辑出错就会导致队列中断或者业务中断,出现业务数据不准确和丢失。对于不准确数据的修正和丢失数据的恢复没有更好的备用解决方案,重新进行逻辑处理会造成大量的工作量。
发明内容
针对现有技术中的上述不足,本发明提供的一种对高并发或大量业务的处理方法及系统解决了高并发数据一旦逻辑处理失败会带来大量工作量的问题。
为了达到上述发明目的,本发明采用的技术方案为:
提供一种对高并发或大量业务的处理方法,其包括以下步骤:
S1、获取数据请求包;
S2、对每个数据请求包生成唯一序列号,并将数据请求包的处理状态映射为值存入缓存中,构建数据请求包处理队列;
S3、基于业务类型,将当前请求数据包中的请求数据拆分成若干个模块,给每个模块生成一个唯一序列号,并将每个模块的处理状态映射为值存入缓存中;
S4、对于每个模块,判断其是否为简单模块,若是则直接加入逻辑处理队列,进入步骤S6;否则进入步骤S5;
S5、按照逻辑类型将当前模块拆分成若干个关联单元,并按照逻辑顺序依次将属于同一个模块的关联单元加入逻辑处理队列,进入步骤S6;
S6、按照模块的序列号的先后顺序对属于同一个请求数据包的逻辑处理队列进行逻辑处理,修改当前请求数据包中逻辑处理成功的模块的处理状态;
S7、判断当前请求数据包是否存在逻辑处理失败的模块,若是则进入步骤S8;否则删除当前数据包所有的缓存,进入步骤S10;
S8、将当前请求数据包中逻辑处理失败的模块进行再次逻辑处理;
S9、判断当前请求数据包的再次逻辑处理是否均成功,若是则删除当前数据包所有的缓存,进入步骤S10;否则采用与步骤S4至步骤S8相同的方法对当前请求数据包逻辑处理未成功的模块进行处理,直至处理成功,进入步骤S10;
S10、判断数据请求包处理队列是否还存在待处理数据包,若是则返回步骤S3;否则结束处理。
进一步地,步骤S3中将每个模块的处理状态映射为值的具体方法为:
将每个模块的处理状态映射初始值设置为0,表示未处理成功;将处理成功的模块的处理状态值映射为1。
进一步地,步骤S6中对属于同一个请求数据包的不同简单模块采用多线程处理方式进行同步处理。
进一步地,步骤S7中判断当前请求数据包是否存在逻辑处理失败的模块的具体方法为:
判断当前请求数据包中每个模块的处理状态值是否均为1,若是则表示当前请求数据包不存在逻辑处理失败的模块;否则存在逻辑处理失败的模块。
进一步地,步骤S9中采用与步骤S4至步骤S8相同的方法对当前请求数据包逻辑处理未成功的模块进行处理的具体方法为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都旋极历通信息技术有限公司,未经成都旋极历通信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111468596.4/2.html,转载请声明来源钻瓜专利网。