CN116643733A - 业务处理系统和方法 - Google Patents

业务处理系统和方法 Download PDF

Info

Publication number
CN116643733A
CN116643733A CN202310922918.0A CN202310922918A CN116643733A CN 116643733 A CN116643733 A CN 116643733A CN 202310922918 A CN202310922918 A CN 202310922918A CN 116643733 A CN116643733 A CN 116643733A
Authority
CN
China
Prior art keywords
execution
asynchronous
module
log storage
asynchronous execution
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.)
Granted
Application number
CN202310922918.0A
Other languages
English (en)
Other versions
CN116643733B (zh
Inventor
王威旺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Renke Interactive Network Technology Co Ltd
Original Assignee
Beijing Renke Interactive Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Renke Interactive Network Technology Co Ltd filed Critical Beijing Renke Interactive Network Technology Co Ltd
Priority to CN202310922918.0A priority Critical patent/CN116643733B/zh
Publication of CN116643733A publication Critical patent/CN116643733A/zh
Application granted granted Critical
Publication of CN116643733B publication Critical patent/CN116643733B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种业务处理系统和方法,涉及计算机信息处理领域。该系统包括:注解模块、日志存储模块和异步补偿模块;其中,注解模块用于对第一操作进行标注,生成第一操作对应的标注信息;在第一操作被调用的情况下,日志存储模块用于在存储第一操作的标识和第一操作对应的异步执行配置信息后,向调用第一操作的第二操作发送第一操作已被执行成功的信息;异步补偿模块用于在日志存储模块向调用第一操作的第二操作发送第一操作已被执行成功的信息后,根据日志存储模块存储的第一操作的标识和第一操作对应的异步执行配置信息,对第一操作进行异步执行。本发明的系统提高了接口响应速度,有效减少和避免对后续操作的影响,提升后续业务的处理效率。

Description

业务处理系统和方法
技术领域
本发明涉及计算机信息处理领域,尤其涉及一种业务处理系统和方法。
背景技术
软件即服务(Software-as-a-Service, SAAS)模式下,服务供应商向众多客户提供客户关系管理(Customer Relationship Management,CRM)产品。每个客户都是该SAAS服务的一个租户,可根据需要,进行订阅付费,以获得服务。
相关技术中,SaaS模式开发过程中,开发人员经常会遇到业务A执行完a方法后,需要再执行业务B的b方法、业务C的c方法。在实际生产过程中,由于硬件、网络等各种因素会出现执行b方法、c方法失败的情况。开发人员需要对这些方法执行失败的场景做补救处理,比如回退业务A的状态为a方法执行前的状态,或者根据业务B、业务C的执行情况,将状态修改成b、c方法执行后的状态,延长了开发的周期,降低了开发的效率。
发明内容
针对现有技术中的问题,本发明实施例提供一种业务处理系统和方法。
具体地,本发明实施例提供了以下技术方案:
第一方面,本发明实施例提供了一种业务处理系统,包括:
注解模块、日志存储模块和异步补偿模块;其中,
注解模块用于对第一操作进行标注,生成第一操作对应的标注信息;所述标注信息用于指示所述第一操作在被调用时需要进行异步执行和所述第一操作对应的异步执行配置信息;
在第一操作被调用的情况下,日志存储模块用于在存储所述第一操作的标识和所述第一操作对应的异步执行配置信息后,向调用所述第一操作的第二操作发送所述第一操作已被执行成功的信息;
异步补偿模块用于在所述日志存储模块向调用所述第一操作的第二操作发送所述第一操作已被执行成功的信息后,根据所述日志存储模块存储的所述第一操作的标识和所述第一操作对应的异步执行配置信息,对所述第一操作进行异步执行。
进一步地,所述注解模块用于在确定所述第一操作在执行的过程中需要被所述第二操作调用且所述第一操作未执行的情况下,对所述第一操作进行标注,生成所述第一操作对应的标注信息。
进一步地,所述异步执行配置信息包括以下至少一项:
第一操作是否立即执行、第一操作执行失败后的重试次数和第一操作执行失败后的重试间隔。
进一步地,所述日志存储模块还用于存储所述第一操作的执行结果;
所述日志存储模块还用于在所述异步补偿模块对所述第一操作进行异步执行后,更新日志存储模块中存储的所述第一操作的执行结果。
进一步地,所述日志存储模块还用于在所述异步补偿模块对所述第一操作进行异步执行成功后,更新日志存储模块中存储的所述第一操作的执行结果为所述第一操作实际执行成功;
在所述异步补偿模块对所述第一操作进行异步执行失败后,更新日志存储模块中存储的所述第一操作的执行结果为异步执行失败。
进一步地,所述业务处理系统还包括:
统计分析模块;所述统计分析模块用于在所述第一操作的异步执行失败的情况下,上报第一操作异步执行失败的告警。
第二方面,本发明实施例还提供了一种业务处理方法,包括:
在第一操作被调用的情况下,存储所述第一操作的标识和所述第一操作对应的异步执行配置信息,并向调用所述第一操作的第二操作指示所述第一操作已被执行成功的信息;所述第一操作的标识和所述第一操作对应的异步执行配置信息用于对所述第一操作进行异步执行。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如第二方面所述业务处理方法。
第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第二方面所述业务处理方法。
第五方面,本发明实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第二方面所述业务处理方法。
本发明实施例提供的业务处理系统和方法,通过注解模块对第一操作进行标注后,进而在第一操作被第二操作调用的情况下,只需要等待第一操作的标识和第一操作对应的异步执行的配置信息被成功存储后,就可以提前向第二操作返回第一操作执行成功的通知,由于第一操作的标识和第一操作对应的异步执行的配置信息的存储时间相较于第一操作的执行时间更短,从而在接收到存储成功的通知后,也就可以继续后续调用第二操作的方法,而不需要等待第一操作真正执行完才可以进行后续的操作,而仅仅只需要等待第一操作的标识和第一操作对应的异步执行的配置信息被成功存储并发送第一操作执行成功的通知即可,使得接口响应速度相较于分布式事务更快,提高了接口响应速度,也就可以有效减少和避免对后续操作的影响,提升后续业务的处理效率;而且通过异步补偿模块对第一操作的异步执行,使得第一操作的最终结果是与其向第二操作发送的执行成功的通知的结果是相同的,从而保障了业务处理的最终一致性,解决了现有技术中分布式事务的方案中,事务协调器认为每个本地事务的地位是平等的,只要有一个本地事务执行失败,分布式事务就会认定事务执行失败,已经执行成功的事务,也会回滚成初始状态;或者需要重新对执行失败的事务重新进行执行,从而使得本申请实施例中的业务处理系统有效降低了开发的周期,提升了开发的效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的业务处理系统的结构示意图;
图2是本发明实施例提供的另一业务处理系统的结构示意图;
图3是本发明实施例提供的业务处理方法的流程示意图;
图4是本发明实施例提供的另一业务处理方法的流程示意图;
图5是本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的方法可以应用于业务处理场景中,提高了接口响应速度,有效减少和避免对后续操作的影响,提升后续业务的处理效率。
相关技术中,SaaS模式开发过程中,开发人员经常会遇到业务A执行完a方法后,需要再执行业务B的b方法、业务C的c方法。在实际生产过程中,由于硬件、网络等各种因素会出现执行b方法、c方法失败的情况。开发人员需要对这些方法执行失败的场景做补救处理,比如回退业务A的状态为a方法执行前的状态,或者根据业务B、业务C的执行情况,将状态修改成b、c方法执行后的状态,延长了开发的周期,降低了开发的效率。
本发明实施例的业务处理方法,通过注解模块对第一操作进行标注后,进而在第一操作被第二操作调用的情况下,只需要等待第一操作的标识和第一操作对应的异步执行的配置信息被成功存储后,就可以提前向第二操作返回第一操作执行成功的通知,由于第一操作的标识和第一操作对应的异步执行的配置信息的存储时间相较于第一操作的执行时间更短,从而在接收到存储成功的通知后,也就可以继续后续调用第二操作的方法,而不需要等待第一操作真正执行完才可以进行后续的操作,而仅仅只需要等待第一操作的标识和第一操作对应的异步执行的配置信息被成功存储并发送第一操作执行成功的通知即可,使得接口响应速度相较于分布式事务更快,提高了接口响应速度,也就可以有效减少和避免对后续操作的影响,提升后续业务的处理效率;而且通过异步补偿模块对第一操作的异步执行,使得第一操作的最终结果是与其向第二操作发送的执行成功的通知的结果是相同的,从而保障了业务处理的最终一致性,解决了现有技术中分布式事务的方案中,事务协调器认为每个本地事务的地位是平等的,只要有一个本地事务执行失败,分布式事务就会认定事务执行失败,已经执行成功的事务,也会回滚成初始状态;或者需要重新对执行失败的事务重新进行执行,从而使得本申请实施例中的业务处理系统有效降低了开发的周期,提升了开发的效率。
下面结合图1-图5以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1是本发明实施例提供的业务处理系统一实施例的流程示意图。如图1所示,本实施例提供的系统,包括:
注解模块101、日志存储模块102和异步补偿模块103;其中,
注解模块101用于对第一操作进行标注,生成第一操作对应的标注信息;标注信息用于指示第一操作在被调用时需要进行异步执行和第一操作对应的异步执行配置信息;
在第一操作被调用的情况下,日志存储模块102用于在存储第一操作的标识和第一操作对应的异步执行配置信息后,向调用第一操作的第二操作发送第一操作已被执行成功的信息;
异步补偿模块103用于在日志存储模块向调用第一操作的第二操作发送第一操作已被执行成功的信息后,根据日志存储模块存储的第一操作的标识和第一操作对应的异步执行配置信息,对第一操作进行异步执行。
具体地,SaaS模式开发过程中,开发人员经常会遇到业务A执行完a方法后,需要再执行业务B的b方法、业务C的c方法。在实际生产过程中,由于硬件、网络等各种因素会出现执行b方法、c方法失败的情况。开发人员需要对这些方法执行失败的场景做补救处理,比如回退业务A的状态为a方法执行前的状态,或者根据业务B、业务C的执行情况,将状态修改成b、c方法执行后的状态,提高了开发成本、延长了交付日期,成为了开发过程中的一大痛点。
针对上述问题,传统的解决方案有引入分布式事务的方案和定制化开发两种方式。
其中,分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上;分布式事务有两阶段提交协议、三阶段提交协议方式,其中两阶段提交是指在分布式系统中,每个节点虽然可以知晓自己的操作是成功或者失败,却无法知道其他节点的操作的成功或失败,需要引入一个作为协调器的组件来统一掌控所有节点。二阶段提交的思路可以概括为:参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是否要提交操作还是中止操作。这类方案需要一个事务协调器,事务协调器通过分布式事务下的各个本地事务的执行情况,判断分布式事务的执行结果。事务协调器认为每个本地事务的地位是平等的,只要有一个本地事务执行失败,分布式事务就会认定事务执行失败,已经执行成功的事务,也会回滚成初始状态。定制化开发的方式主要是预先提供各种异常情况的解决方案,然后通过定时比较不同系统数据的业务状态来判断是否执行异常解决方案或执行哪个异常解决方案。
上述两种方式中,分布式事务这种解决方式无法满足系统A主逻辑执行成功后,系统B、C的方法执行失败,不需要回滚系统A,而是重复执行系统B、C方法的需求。同时,由于事务协调器需要等待各个本地事务的最终执行结果,所以耗时会大于本地事务耗时的最大值。定制化开发,可以满足系统对最终一致性的要求,但由于定制化程度太高,不同场景需要提供不同的解决方案,一个系统中如果需要实现最终一致性的业务有很多,开发成本会很高,交付时间也会变长。
为了解决上述问题,本发明实施例中的业务处理系统包括注解模块101、日志存储模块102和异步补偿模块103;其中,注解模块101用于对第一操作进行标注,生成第一操作对应的标注信息;标注信息用于指示第一操作在被调用时需要进行异步执行和第一操作对应的异步执行配置信息;
例如,A操作是用户在平台上进行注册,B方法是A操作完成后给用户增加相应的积分,C操作是A操作完成后给用户增加相应的优惠券;也就是执行完A操作后,需要再执行B操作和C操作,则注解模块可以对B操作和C操作进行标注,并且生成B操作和C操作的标注信息;其中,标注信息用于指示B操作、C操作在被A操作调用时进行异步执行和异步执行的配置信息。可选地,如果第一操作没有进行标记,则第一操作不需要进行异步执行,但需要等待第一操作执行完成后,才可以继续后续调用第二操作的方法,使得开发效率降低,开发周期较长。
可选地,在注解模块对第一操作(B操作、C操作)进行标注后,在第一操作(B操作、C操作)被第二操作(A操作)调用的情况下,则日志存储模块102可以存储被调用的第一操作的标识(B操作和C操作的标识)和第一操作对应的异步执行的配置信息,并在存储成功后,向调用第一操作的第二操作(A操作)发送第一操作已被执行成功的信息,而不需要等待第一操作执行完成后,才发送第一操作执行成功的信息;也就是在第一操作的标识和第一操作对应的异步执行的配置信息被成功存储后,则提前向第二操作先返回第一操作执行成功的通知,从而不影响第二操作后续的执行,提升了后续业务的处理效率,也解决了现有技术中分布式事务的方案中,事务协调器认为每个本地事务的地位是平等的,只要有一个本地事务执行失败,分布式事务就会认定事务执行失败,也就是第二操作(A操作)调用第一操作(B操作)的情况下,第二操作没成功之前,后面的方法是不会去执行的;已经执行成功的事务,也会回滚成初始状态;或者需要重新对执行失败的事务重新进行执行,从而延长了开发的周期,降低了开发的效率。
需要说明的是,本申请实施例中只需要第一操作的标识和第一操作对应的异步执行的配置信息被日志存储模块102成功存储和记录后,则提前向第二操作返回第一操作执行成功的通知,由于第一操作的标识和第一操作对应的异步执行的配置信息的存储时间相较于第一操作的执行时间更短(例如,存储的时间只需要1秒,而执行第一操作的时间需要1分钟,且第一操作的执行过程中仍可能存在执行失败的风险),因而可以减少和避免对后续的操作的影响,提升了后续业务的处理效率;而且异步补偿模块103通过对第一操作的异步执行,从而使得第一操作的最终结果是与其向第二操作发送的执行成功的通知的结果是相同的,从而保障了业务处理的最终一致性。其中,最终一致性是一种弱一致性,只要求最后结果是相同的和正确的,而不要求其中间状态是一致的。
上述实施例的系统,通过注解模块对第一操作进行标注后,进而在第一操作被第二操作调用的情况下,只需要等待第一操作的标识和第一操作对应的异步执行的配置信息被成功存储后,就可以提前向第二操作返回第一操作执行成功的通知,由于第一操作的标识和第一操作对应的异步执行的配置信息的存储时间相较于第一操作的执行时间更短,从而在接收到存储成功的通知后,也就可以继续后续调用第二操作的方法,而不需要等待第一操作真正执行完才可以进行后续的操作,而仅仅只需要等待第一操作的标识和第一操作对应的异步执行的配置信息被成功存储并发送第一操作执行成功的通知即可,使得接口响应速度相较于分布式事务更快,提高了接口响应速度,也就可以有效减少和避免对后续操作的影响,提升后续业务的处理效率;而且通过异步补偿模块对第一操作的异步执行,使得第一操作的最终结果是与其向第二操作发送的执行成功的通知的结果是相同的,从而保障了业务处理的最终一致性,解决了现有技术中分布式事务的方案中,事务协调器认为每个本地事务的地位是平等的,只要有一个本地事务执行失败,分布式事务就会认定事务执行失败,已经执行成功的事务,也会回滚成初始状态;或者需要重新对执行失败的事务重新进行执行,从而使得本申请实施例中的业务处理系统有效降低了开发的周期,提升了开发的效率。
在一实施例中,注解模块用于在确定第一操作在执行的过程中需要被第二操作调用且第一操作未执行的情况下,对第一操作进行标注,生成第一操作对应的标注信息。
具体地,本发明实施例中的业务处理系统用于在第二操作对应的主逻辑操作(A操作)执行成功后,且主逻辑操作调用第一操作(B操作、C操作)的情况下,通过对第一操作进行标注,从而在第一操作被调用的过程中,只需要第一操作被存储成功就可以提前返回第一操作执行成功的处理结果;由于第一操作存储的时间长度相较于第一操作执行的时间更短,从而在第一操作存储成功后,就可以继续后续调用第二操作的方法,而不需要等待第一操作真正执行完才可以进行后续的操作,提高了接口响应速度;而且通过后续对第一操作采用异步执行的方式进行处理,可以有效地保障业务处理的最终一致性。
在一实施例中,异步执行配置信息包括以下至少一项:
第一操作是否立即执行、第一操作执行失败后的重试次数和第一操作执行失败后的重试间隔。
具体地,本发明实施例中在第一操作存储成功后就提前向第二操作返回第一操作执行成功的处理结果,而不需要等待第一操作真正执行完才可以进行后续的操作,提高了接口响应速度;而且通过后续对第一操作采用异步执行的方式进行处理,可以有效地保障业务处理的最终一致性;可选地,异步执行配置信息用于指示第一操作何时进行异步执行以及第一操作异步执行的具体方式;可选地,异步执行配置信息包括第一操作是否立即执行、第一操作执行失败后的重试次数和第一操作执行失败后的重试间隔,从而通过异步执行配置信息可以准确高效的实现对第一操作的异步执行,保障业务处理的最终一致性。
上述实施例的系统,通过配置第一操作对应的异步执行配置信息,从而可以基于异步执行配置信息可以准确高效的实现对第一操作的异步执行,保障业务处理的最终一致性。
在一实施例中,日志存储模块还用于存储第一操作的执行结果;
日志存储模块还用于在异步补偿模块对第一操作进行异步执行后,更新日志存储模块中存储的第一操作的执行结果。
具体地,本发明实施例中,日志存储模块还用于在异步补偿模块对第一操作进行异步执行后,更新日志存储模块中存储的第一操作的执行结果;例如,在异步补偿模块对第一操作进行异步执行成功后,更新日志存储模块中存储的第一操作的执行结果为第一操作实际执行成功,也就是第一操作(操作B和操作C)已经异步执行成功,已经实现了业务处理的最终一致性;可选地,在异步补偿模块对第一操作进行异步执行失败后,更新日志存储模块中存储的第一操作的执行结果为异步执行失败,也就是需要根据异步执行配置信息,确定下一次重试进行异步执行的间隔和重试的次数,也就是表示异步执行失败,还没有实现业务处理的最终一致性,还需要根据异步执行的配置信息进行第一操作对应的异步执行。
上述实施例的系统,通过在异步补偿模块对第一操作进行异步执行成功后,更新日志存储模块中存储的第一操作的执行结果,从而可以准确及时的指示当前异步执行的结果;若指示第一操作已经异步执行成功,则表示已经实现了业务处理的最终一致性;若指示第一操作异步执行失败,则表示异步执行失败,还没有实现业务处理的最终一致性,还需要根据异步执行的配置信息进行第一操作对应的异步执行,从而有效保障了业务处理的最终一致性。
在一实施例中,统计分析模块;统计分析模块用于在第一操作的异步执行失败的情况下,上报第一操作异步执行失败的告警。
具体地,本发明实施例中的业务处理系统还包括统计分析模块;其中,统计分析模块用于在基于异步执行的配置信息对第一操作的异步执行失败的情况下,也就是异步执行的配置信息中配置的最大重试次数执行完成后,第一操作的异步执行仍失败的情况下,第一操作对应的业务处理仍未实现最终一致性的情况下,则统计分析模块上报第一操作异步执行失败的告警,进而开发人员基于告警进行第一操作的异步执行失败的原因分析及故障处理,从而使得第一操作可以成功的进行异步执行,实现有效保障业务处理的最终一致性的效果。
上述实施例的系统,通过统计分析模块在第一操作的异步执行失败的情况下,上报第一操作异步执行失败的告警,从而使得开发人员基于告警进行第一操作的异步执行失败的原因分析及故障处理,最终使得第一操作可以成功的进行异步执行,实现有效保障业务处理的最终一致性的效果。
在一实施例中,业务处理方法包括:
在第一操作被调用的情况下,存储第一操作的标识和第一操作对应的异步执行配置信息,并向调用第一操作的第二操作指示第一操作已被执行成功的信息;第一操作的标识和第一操作对应的异步执行配置信息用于对第一操作进行异步执行。
具体地,本发明实施例中的业务处理方法应用于业务处理系统中,在第一操作被调用的情况下,存储第一操作的标识和第一操作对应的异步执行配置信息,并向调用第一操作的第二操作指示第一操作已被执行成功的信息;由于第一操作的标识和第一操作对应的异步执行的配置信息的存储时间相较于第一操作的执行时间更短,从而在接收到存储成功的通知后,也就可以继续后续调用第二操作的方法,而不需要等待第一操作真正执行完才可以进行后续的操作,而仅仅只需要等待第一操作的标识和第一操作对应的异步执行的配置信息被成功存储并发送第一操作执行成功的通知即可,使得接口响应速度相较于分布式事务更快,提高了接口响应速度,也就可以有效减少和避免对后续操作的影响,提升后续业务的处理效率;而且通过对第一操作的异步执行,使得第一操作的最终结果是与其向第二操作发送的执行成功的通知的结果是相同的,从而保障了业务处理的最终一致性,解决了现有技术中分布式事务的方案中,事务协调器认为每个本地事务的地位是平等的,只要有一个本地事务执行失败,分布式事务就会认定事务执行失败,已经执行成功的事务,也会回滚成初始状态;或者需要重新对执行失败的事务重新进行执行,从而使得本申请实施例中的业务处理系统有效降低了开发的周期,提升了开发的效率。
示例性的,本申请中的业务处理系统如图2所示,包括注解模块、日志存储模块、异步补偿模块和统计分析模块。
可选地,注解模块通过Java注解技术、Spring AOP技术实现,用于标记需要被日志存储模块处理的方法,同时设置异步补偿模块所需要的方法参数,参数包括是否立即执行、失败重试次数、失败重试间隔。也就是对第一操作进行了标记,该第一操作就会被业务处理系统托管;也就是在第一操作被调用的情况下,只需要第一操作被存储后,就会直接通知第一操作已经执行成功,后序会基于异步执行配置信息在进行第一操作的执行;如果第一操作执行时间很长,比如10钟后才能执行成功,本申请实施例中第一操作的存储效率和时间是很快的,使得接口响应速度相较于分布式事务更快,提高了接口响应速度,也就可以有效减少和避免对后续操作的影响,提升后续业务的处理效率;可选地,如果第一操作没有进行标记,则第一操作不需要进行异步执行;则需要等待第一操作执行完成后,才可以继续后续调用第二操作的方法,使得开发效率降低,开发周期较长。也就是通过标记这种比较简单的方式,整个业务流程想制定某些规则的情况下,通过比较简单的参数去确定就可以了,不用去写大量的代码,提高开发效率。
日志存储模块,依赖数据库,存储方法执行日志。日志包含全局递增的唯一ID、方法名、参数、方法执行结果、方法执行次数、方法下次执行时间。也就是把已经标记的第一操作进行存储,当其他地方调用第一操作的情况下,第一操作就被业务处理系统进行代理,就会给调用的方法返回第一操作执行成功的结果,也就是第一操作存储后就可以向调用第一操作的第二操作发送执行成功的通知。
例如,第二操作A调用第一操作B和第一操作C,在第一操作B进行标注的情况下,则在第二操作A调用第一操作B时,第一操作B存储成功后,就会直接通知第一操作B执行成功。
异步补偿模块筛选出日志存储模块中符合要求的方法日志,依赖Java反射技术,执行对应方法,进行补偿操作。
统计分析模块用于分析日志存储模块中的方法日志,实现异常方法接口实时告警、接口稳定性分析等功能。也就是第一操作基于异步执行配置信息进行多次执行都没有成功的情况下,就需要开发人员介入进行排障,从而保障业务处理的最终一致性。
示例性的,第一操作被业务处理系统托管的方法流程流程图如图3所示,通过业务处理系统保障业务处理过程中的最终一致性,在方法日志初始化成功后,也就是第一操作存储成功后并提前向第二操作返回第一操作执行成功的通知后,就可以开始后续的异步处理逻辑,而无需等待第一操作真正执行完成后才向第二操作返回第一操作执行成功的信息,提高了接口的响应速度。
示例性的,如图4所示,异步补偿模块会定时选取并执行需要重试的第一操作,如果执行成功,修改方法日志为已完成,如果执行失败,判断是否还能再次重试,如果允许重试,更新日志的执行次数、下次执行时间,如果不允许重试,修改日志为冻结状态。
上述实施例的系统,在第二操作的主逻辑执行成功并且保存其它第一操作后,直接返回处理结果。后续逻辑采用异步的方式处理,提高了接口响应速度;而且采用注解的方式标记需要模块托管的第一操作,之后的操作由模块统一处理,提高了开发效率。相对于分布式事务,满足了主逻辑成功,其它逻辑执行失败后重试的需求;而且接口响应速度在大多数场景中比分布式事务更快,开发成本相比于定时化开发更低,工程交付时间更快。
本发明实施例的装置,其用于执行前述任一方法实施例中的方法,其实现原理和技术效果类似,此次不再赘述。
图5示例了一种电子设备的实体结构示意图,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行业务处理方法,该方法包括:在第一操作被调用的情况下,存储第一操作的标识和第一操作对应的异步执行配置信息,并向调用第一操作的第二操作指示第一操作已被执行成功的信息;第一操作的标识和第一操作对应的异步执行配置信息用于对第一操作进行异步执行。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的在第一操作被调用的情况下,存储第一操作的标识和第一操作对应的异步执行配置信息,并向调用第一操作的第二操作指示第一操作已被执行成功的信息;第一操作的标识和第一操作对应的异步执行配置信息用于对第一操作进行异步执行
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的在第一操作被调用的情况下,存储第一操作的标识和第一操作对应的异步执行配置信息,并向调用第一操作的第二操作指示第一操作已被执行成功的信息;第一操作的标识和第一操作对应的异步执行配置信息用于对第一操作进行异步执行。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种业务处理系统,其特征在于,包括:
注解模块、日志存储模块和异步补偿模块;其中,
注解模块用于对第一操作进行标注,生成第一操作对应的标注信息;所述标注信息用于指示所述第一操作在被调用时需要进行异步执行和所述第一操作对应的异步执行配置信息;
在第一操作被调用的情况下,日志存储模块用于在存储所述第一操作的标识和所述第一操作对应的异步执行配置信息后,向调用所述第一操作的第二操作发送所述第一操作已被执行成功的信息;
异步补偿模块用于在所述日志存储模块向调用所述第一操作的第二操作发送所述第一操作已被执行成功的信息后,根据所述日志存储模块存储的所述第一操作的标识和所述第一操作对应的异步执行配置信息,对所述第一操作进行异步执行。
2.根据权利要求1所述的业务处理系统,其特征在于,
所述注解模块用于在确定所述第一操作在执行的过程中需要被所述第二操作调用且所述第一操作未执行的情况下,对所述第一操作进行标注,生成所述第一操作对应的标注信息。
3.根据权利要求2所述的业务处理系统,其特征在于,所述异步执行配置信息包括以下至少一项:
第一操作是否立即执行、第一操作执行失败后的重试次数和第一操作执行失败后的重试间隔。
4.根据权利要求3所述的业务处理系统,其特征在于,所述日志存储模块还用于存储所述第一操作的执行结果;
所述日志存储模块还用于在所述异步补偿模块对所述第一操作进行异步执行后,更新日志存储模块中存储的所述第一操作的执行结果。
5.根据权利要求4所述的业务处理系统,其特征在于,所述日志存储模块还用于在所述异步补偿模块对所述第一操作进行异步执行成功后,更新日志存储模块中存储的所述第一操作的执行结果为所述第一操作实际执行成功;
在所述异步补偿模块对所述第一操作进行异步执行失败后,更新日志存储模块中存储的所述第一操作的执行结果为异步执行失败。
6.根据权利要求5所述的业务处理系统,其特征在于,所述业务处理系统还包括:
统计分析模块;所述统计分析模块用于在所述第一操作的异步执行失败的情况下,上报第一操作异步执行失败的告警。
7.一种业务处理方法,其特征在于,应用于如权利要求1-6任一项所述的业务处理系统,包括:
在第一操作被调用的情况下,存储所述第一操作的标识和所述第一操作对应的异步执行配置信息,并向调用所述第一操作的第二操作指示所述第一操作已被执行成功的信息;所述第一操作的标识和所述第一操作对应的异步执行配置信息用于对所述第一操作进行异步执行。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求7所述的业务处理方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求7所述的业务处理方法。
CN202310922918.0A 2023-07-26 2023-07-26 业务处理系统和方法 Active CN116643733B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310922918.0A CN116643733B (zh) 2023-07-26 2023-07-26 业务处理系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310922918.0A CN116643733B (zh) 2023-07-26 2023-07-26 业务处理系统和方法

Publications (2)

Publication Number Publication Date
CN116643733A true CN116643733A (zh) 2023-08-25
CN116643733B CN116643733B (zh) 2023-10-13

Family

ID=87625115

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310922918.0A Active CN116643733B (zh) 2023-07-26 2023-07-26 业务处理系统和方法

Country Status (1)

Country Link
CN (1) CN116643733B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020009207A (ja) * 2018-07-10 2020-01-16 株式会社日立製作所 システム異常操作検出装置、方法およびプログラム
CN111241125A (zh) * 2020-01-08 2020-06-05 成都嗨学洛子教育科技有限公司 一种记录操作日志的方法、装置、电子设备和存储介质
CN111538573A (zh) * 2020-03-27 2020-08-14 中国平安财产保险股份有限公司 异步任务处理方法、装置及计算机可读存储介质
WO2020233037A1 (zh) * 2019-05-20 2020-11-26 深圳壹账通智能科技有限公司 数据处理方法、装置及存储介质
CN113296898A (zh) * 2021-05-26 2021-08-24 北京京东振世信息技术有限公司 异步任务处理方法、装置、电子设备和存储介质
CN115499493A (zh) * 2022-09-14 2022-12-20 平安付科技服务有限公司 异步事务处理方法、装置、存储介质及计算机设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020009207A (ja) * 2018-07-10 2020-01-16 株式会社日立製作所 システム異常操作検出装置、方法およびプログラム
WO2020233037A1 (zh) * 2019-05-20 2020-11-26 深圳壹账通智能科技有限公司 数据处理方法、装置及存储介质
CN111241125A (zh) * 2020-01-08 2020-06-05 成都嗨学洛子教育科技有限公司 一种记录操作日志的方法、装置、电子设备和存储介质
CN111538573A (zh) * 2020-03-27 2020-08-14 中国平安财产保险股份有限公司 异步任务处理方法、装置及计算机可读存储介质
CN113296898A (zh) * 2021-05-26 2021-08-24 北京京东振世信息技术有限公司 异步任务处理方法、装置、电子设备和存储介质
CN115499493A (zh) * 2022-09-14 2022-12-20 平安付科技服务有限公司 异步事务处理方法、装置、存储介质及计算机设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈智罡, 王磊, 高敬惠: "基于JMS和MDB构建异步日志服务", 计算机系统应用, no. 04 *

Also Published As

Publication number Publication date
CN116643733B (zh) 2023-10-13

Similar Documents

Publication Publication Date Title
CN111277639B (zh) 一种保持数据一致性的方法和装置
CN112099935B (zh) 一种任务处理方法及装置
CN111580939B (zh) 一种分级异步处理事务的方法及装置
CN112446786A (zh) 一种异常交易处理方法、装置、电子设备和可读存储介质
CN108845866B (zh) 处理分布式事务的方法和装置
CN114253673A (zh) 一种分布式系统的事务处理方法和事务处理装置
CN112597249A (zh) 一种业务数据的同步分发存储方法及系统
CN112817995A (zh) 数据处理方法和装置、电子设备及存储介质
CN112417042A (zh) 一种处理业务请求的方法和装置
CN112596801B (zh) 事务处理方法、装置、设备、存储介质、数据库
CN110941622A (zh) 一种数据处理方法及装置
CN116643733B (zh) 业务处理系统和方法
CN111367934B (zh) 数据一致性的检验方法、装置、服务器和介质
CN112561506A (zh) 基于虚拟货币的直播数据处理方法、系统、设备及介质
CN115208834A (zh) 一种基于数据库存储过程设计的服务流量限制方法
CN112860746B (zh) 一种基于缓存削减的方法、设备及系统
CN110716972A (zh) 高频率调用外部接口出错的处理方法和装置
CN114612204A (zh) 对账方法及装置
CN117762692B (zh) 一种数据库异常数据处理方法及系统
CN115269161B (zh) 一种异常流程逆向回滚方法和系统
CN117032909A (zh) 金融业务中分布式事务的补偿方法、装置、设备及介质
CN107566478B (zh) 数据推送方法、系统及计算机可读存储介质
CN117193949A (zh) 分布式事务配置方法、装置、电子设备和存储介质
CN114090299A (zh) 一种集群间的数据同步方法、装置和电子设备
CN114090194A (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