一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

高并发的彩票交易场景下数据一致性方法与流程

2022-11-09 23:15:42 来源:中国专利 TAG:


1.本发明涉及一种高并发的彩票交易场景下数据一致性方法,属于计算机技术领域。


背景技术:

2.彩票的发行、销售离不开信息化系统的支撑,对于彩票交易系统来说,最大的难点在于保证系统在高并发能力的前提下,保持交易数据的一致性,一个交易流程需要经历生成订单、扣减额度、处理风控、生成票据等多个环节,其中任一环节都有可能出现业务或者系统层级的异常导致交易无法正常完成,对于这些中间状态的交易数据,需要一种方法使其状态归于一致。
3.检索结果:1)公开号为cn110445837a的中国专利公开了高并发集群系统及搭建方法、高并发请求处理方法及装置,此方案的重点在于提供一种高并发集群系统,通过对操作系统的系统文件描述符、系统环境,以及所述反向代理服务器的配置文件进行设置,从而实现高并发需求。此方案的发明方向仅针对高并发需求,未能解决高并发场景下的交易一致性问题,我们的方案重点在于高并发的交易环境下,保持数据的一致性。
4.2)公开号为cn106355734a的中国专利公开了一种彩票交易系统,此方案的重点在于提供一种彩票交易系统,实现移动终端输出选号信息和彩票终端识别选好信息并输出识别码信息的功能。此发明仅对终端设备选号和识别进行设计,未涉及彩票交易的后台流转过程设计,我们的方案重点在于彩票系统的交易流程设计。
5.3)公开号为cn103838817a的中国专利公开了数据一致性管理;此方案的重点在于提供一种数据一致性管理系统,实现针对由nosql数据存储库或由rdbms管理的数据表查询。此发明针对多个数据库之上的一致性查询,我们的方案重点在于保障彩票交易流程中交易数据的一致性落地。
6.4)检索结果总体分析从现有专利和其他文献的检索结果来分析,针对彩票交易系统及高并发场景已有相关设计。但并没有针对彩票高并发交易下的数据一致性方案。


技术实现要素:

7.为克服现有技术的缺陷,本发明提供一种高并发的彩票交易场景下数据一致性方法,本发明的技术方案是:提供一套基于多环节任务调度的技术框架,其中包含状态机客户端组件和状态机引擎组件。
8.高并发的彩票交易场景下数据一致性方法,包括以下步骤:(1)将状态机客户端绑定至各服务节点,负责将各服务节点的执行状态通知状态机引擎,并接收状态机引擎的调度命令;在一致性流程中的各环节分别设置回滚方法,由状
态机客户端根据状态机引擎的执行状态进行调度;(2)状态机引擎接收状态机客户端的执行状态,负责流程管理以及状态处理。
9.所述的状态机客户端包括状态监听步骤和失败回调步骤,所述的状态监听的步骤具体为:针对流程起始方法,在执行前向状态机引擎注册全局流程,获取全局流程id,作为当前交易流程的唯一标识保存至业务数据中,该标识同时作为异常回滚时的识别标识;针对结束环节,执行成功后向状态机引擎发送完成通知,表示流程成功结束;执行状态将通过消息机制通知到状态机引擎,由状态机引擎根据结果进行后续的调度。
10.所述的失败回调的具体步骤为:当交易流程中某一环节执行异常,状态机引擎将对所有已执行环节发起回滚调度,失败回调模块监听到回滚命令后,提取全局流程id,调用当前模块的回滚方法,回滚方法中对已执行的业务按照指定逻辑进行恢复。
11.所述的状态机引擎包括流程管理的步骤以及进程控制的步骤,所述的流程管理的步骤包括:对一致性流程进行定义及配置,对于当前交易场景来说,流程包含创建订单、扣减额度、处理风控和出票四个环节,通过状态图配置服务调用流程,根据场景需求配置各个环节的补偿节点及补偿路径,当指定当前节点异常时需回滚的节点及回滚顺序,当流程环节执行异常时将按配置的方案进行流程回滚。
12.所述的进程控制的步骤具体包括:针对流程开始、执行成功、执行失败、流程完成的状态提供处理方法,流程开始由入口方法触发,该入口方法即业务控制层接收到交易请求后路由到的下单接口,控制器生成全局流程数据,状态标为执行中;执行成功由状态客户端反馈,控制器获取流程及子服务信息,生成子服务执行成功记录;执行失败由状态机客户端反馈,控制器获取流程及子服务信息,根据流程配置判断是否需要回滚流程和回滚路径,流程状态标为待回滚,分别向需要回滚的服务发送回退通知,通过状态机客户端的失败回退调度回滚方法进行业务回滚,各子服务回滚成功后反馈,全部成功后流程状态标为已回滚;流程完成由入口方法触发,将流程状态标为已完成,代表流程正常终结。
13.当风控环节异常时,回滚机制具体为:(1)业务控制层接收到下单请求,将请求路由至下单接口,在下单接口执行之前调用状态机引擎注册流程,状态机引擎生成流程记录,将状态标为执行中,将记录标识返回业务控制层;(2)业务控制层执行生成订单的业务逻辑,执行成功,发送生成订单成功消息;(3)状态机引擎接收到生成订单成功消息,由成功处理接口进行处理,记录生成订单成功日志;(4)业务控制层继续执行扣减额度的业务逻辑,执行成功,发送扣减额度成功消息;(5)状态机引擎接收到扣减额度成功消息,由成功处理接口进行处理,记录扣减额度成功日志;(6)业务控制层继续执行处理风控的业务逻辑,执行失败,发送风控失败消息;(7)状态机引擎接收到风控失败消息,由失败处理接口进行处理,查询流 程配置,得知当前节点异常需回滚的环节为扣减额度,发送扣减额度回滚消息;(8)扣减额度服务接收到回滚额度消息,调度回滚方法,执行成功后发送回滚成功消息;
(9)状态机引擎接收到回滚成功消息,修改扣减额度成功日志状态为已回滚,查询当前流程所有需回滚的操作记录,全部已回滚完成,将流程记录标记为已回滚。
14.所述的流程状态包括执行中、待回滚、已回滚和已完成状态,其中,已回滚和已完成的状态为终态,代表流程异常并已回滚为一致状态或正常结束;对于长时间处于非终态的流程,说明业务流程执行或与状态机引擎的交互出现问题,当出现上述问题时,采用定时轮询的方式筛查异常流程,并进行重试操作。
15.本发明的优点是:针对交易流程的每个环节,在正向操作之外设置其恢复数据状态的回退操作方法,各环节执行情况由状态机引擎进行管理,通过消息通知机制进行通信。如所有环节全部执行成功,则流程正常结束,如遇执行异常,则由状态机通知所有已执行成功的环节,执行回退方法,实现数据的最终状态一致。在保证彩票交易流程高效运转的前提下,通过合理的任务调度,实现交易数据的一致。
附图说明
16.图1是本发明的整体框架示意图。
17.图2是本发明中状态机客户端的结构图。
18.图3是本发明中状态机引擎流程管理示意图。
19.图4是本发明中状态机引擎的数据流向示意图。
具体实施方式
20.下面结合具体实施例来进一步描述本发明,本发明的优点和特点将会随着描述而更为清楚。但这些实施例仅是范例性的,并不对本发明的范围构成任何限制。本领域技术人员应该理解的是,在不偏离本发明的精神和范围下可以对本发明技术方案的细节和形式进行修改或替换,但这些修改和替换均落入本发明的保护范围内。
21.本发明涉及高并发的彩票交易场景下数据一致性方法,包括以下步骤:(1)将状态机客户端绑定至各服务节点,负责将各服务节点的执行状态通知状态机引擎,并接收状态机引擎的调度命令;在一致性流程中的各环节分别设置回滚方法,由状态机客户端根据状态机引擎的执行状态进行调度;(2)状态机引擎接收状态机客户端的执行状态,负责流程管理以及状态处理。
22.所述的状态机客户端包括状态监听步骤和失败回调步骤,所述的状态监听的步骤具体为:针对流程起始方法,在执行前向状态机引擎注册全局流程,获取全局流程id,作为当前交易流程的唯一标识保存至业务数据中,该标识同时作为异常回滚时的识别标识;针对结束环节,执行成功后向状态机引擎发送完成通知,表示流程成功结束;执行状态将通过消息机制通知到状态机引擎,由状态机引擎根据结果进行后续的调度。
23.所述的失败回调的具体步骤为:当交易流程中某一环节执行异常,状态机引擎将对所有已执行环节发起回滚调度,失败回调模块监听到回滚命令后,提取全局流程id,调用当前模块的回滚方法,回滚方法中对已执行的业务按照指定逻辑进行恢复。
24.所述的状态机引擎包括流程管理的步骤以及进程控制的步骤,所述的流程管理的步骤包括:对一致性流程进行定义及配置,对于当前交易场景来说,流程包含创建订单、扣减额度、处理风控和出票四个环节,通过状态图配置服务调用流程,根据场景需求配置各个
环节的补偿节点及补偿路径,当指定当前节点异常时需回滚的节点及回滚顺序,当流程环节执行异常时将按配置的方案进行流程回滚。
25.所述的进程控制的步骤具体包括:针对流程开始、执行成功、执行失败、流程完成的状态提供处理方法,流程开始由入口方法触发,该入口方法即业务控制层接收到交易请求后路由到的下单接口,控制器生成全局流程数据,状态标为执行中;执行成功由状态客户端反馈,控制器获取流程及子服务信息,生成子服务执行成功记录;执行失败由状态机客户端反馈,控制器获取流程及子服务信息,根据流程配置判断是否需要回滚流程和回滚路径,流程状态标为待回滚,分别向需要回滚的服务发送回退通知,通过状态机客户端的失败回退调度回滚方法进行业务回滚,各子服务回滚成功后反馈,全部成功后流程状态标为已回滚;流程完成由入口方法触发,将流程状态标为已完成,代表流程正常终结。
26.当风控环节异常时,回滚机制具体为:(1)业务控制层接收到下单请求,将请求路由至下单接口,在下单接口执行之前调用状态机引擎注册流程,状态机引擎生成流程记录,将状态标为执行中,将记录标识返回业务控制层;(2)业务控制层执行生成订单的业务逻辑,执行成功,发送生成订单成功消息;(3)状态机引擎接收到生成订单成功消息,由成功处理接口进行处理,记录生成订单成功日志;(4)业务控制层继续执行扣减额度的业务逻辑,执行成功,发送扣减额度成功消息;(5)状态机引擎接收到扣减额度成功消息,由成功处理接口进行处理,记录扣减额度成功日志;(6)业务控制层继续执行处理风控的业务逻辑,执行失败,发送风控失败消息;(7)状态机引擎接收到风控失败消息,由失败处理接口进行处理,查询流程配置,得知当前节点异常需回滚的环节为扣减额度,发送扣减额度回滚消息;(8)扣减额度服务接收到回滚额度消息,调度回滚方法,执行成功后发送回滚成功消息;(9)状态机引擎接收到回滚成功消息,修改扣减额度成功日志状态为已回滚,查询当前流程所有需回滚的操作记录,全部已回滚完成,将流程记录标记为已回滚。
27.所述的流程状态包括执行中、待回滚、已回滚和已完成状态,其中,已回滚和已完成的状态为终态,代表流程异常并已回滚为一致状态或正常结束;对于长时间处于非终态的流程,说明业务流程执行或与状态机引擎的交互出现问题,当出现上述问题时,采用定时轮询的方式筛查异常流程,并进行重试操作。
28.本发明的彩票交易功能使用java语言进行开发,采用mvc架构,业务流程由交易控制器层代码开始,由服务层代码实现业务逻辑。具体实施过程如下:1.编写业务逻辑代码交易控制器类的“下单”接口作为交易功能的入口,“下单”接口中调用订单服务类、额度服务类、风控服务类、出票服务类分别执行创建订单、扣减额度、处理风控、出票的业务逻辑,各个服务类中定义“执行”和“回滚”两个方法,分别处理其业务操作的正向及回滚逻辑,其中“回滚”方法为非必选项,该两个方法将与状态机引擎中流程管理配置相绑定,
对应图3中各环节中的“执行”和“回滚”操作。
29.2.实现状态机客户端状态机客户端包含状态监听和失败回调两部分,以上所述状态监听以程序切片的方式切入交易控制器类的“下单”方法和服务类代码中的“执行”方法,该切片会在“下单”方法的执行开始及结束处分别向状态机引擎进行流程注册及流程完结上报,并监听“执行”方法的执行状态,将各服务类的“执行”方法的执行状态上报至状态机引擎。
30.以上所述失败回调以监听失败队列消息方式实现,接收状态机引擎反馈的失败消息,从失败消息中获取流程信息及所属服务类信息,调用相应服务类的“回滚”方法,执行业务逻辑回滚。
31.3.实现状态机引擎状态机引擎包含流程管理和进程控制两部分,以上所述流程管理定义需管理的业务流程及其回滚路径,针对当前交易场景,流程包含创建订单、扣减额度、处理风控、出票4个业务环节,其中创建订单环节失败无需回滚,扣减额度环节失败需回滚创建订单环节,处理风控环节失败需回滚扣减额度和创建订单环节,出票环节失败需回滚处理风控、扣减额度和创建订单环节,此处业务环节需与状态机客户端监听的服务类进行对应。
32.以上所述进程控制以监听状态上报队列消息方式实现,其中包含4个控制分支,分别为流程开始、执行成功、执行失败、流程完结,当监听到流程注册消息时执行流程开始分支,创建主流程;当监听到执行成功消息时执行执行成功分支,记录成功日志;当监听到执行失败消息是执行失败分支,查询流程管理中定义的流程及回滚路径,向客户端发送回滚消息,等待需回滚的各节点反馈回滚成功消息后标记主流程为已回滚并归档;当监听到流程完结消息时执行完结分支,标记主流程为已完结并归档。
33.本发明设计针对彩票交易场景的高性能数据一致性方法,通过此方法,可以满足交易场景的高并发要求,并实现业务容忍时限内的数据一致性。通过本方案的实施,可以大幅提升彩票交易系统的性能和可靠性,更好的支撑彩票业务的发展。
34.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献