业务数据的同步方法及相关设备与流程
未命名
07-23
阅读:105
评论:0
1.本技术涉及微服务技术领域,尤其涉及一种业务数据的同步方法及相关设备。
背景技术:
2.当前微服务领域下存在许多服务间调用的场景,其中涉及到多个服务需要对应更改数据以及同步数据的情况,若没有一个好的同步方法则容易产生脏数据。
3.现有技术中针对上述问题的解决方案的共同点为本身实现复杂,业务接入困难,且在接入业务时需要知道业务的含义以及业务的流转状态,使用方因此望而却步。
技术实现要素:
4.有鉴于此,本技术的目的在于提出一种业务数据的同步方法及相关设备。
5.基于上述目的,本技术提供了一种业务数据的同步方法,应用于微服务业务链路中的业务,包括:
6.接收来自上一级业务的重试同步请求;所述重试同步请求与所述上一级业务先前发送的同步请求相对应;
7.查询本地事务记录中是否存在与所述同步请求相对应的处理记录;
8.响应于所述本地事务记录中不存在与所述同步请求相对应的处理记录,执行与所述同步请求对应的数据处理,并在所述本地事务记录中写入与所述同步请求相对应的处理记录。
9.在一种可能的实现方式中,所述方法还包括:
10.向下一级业务发送同步请求;
11.响应于在预设的时限内未接收到所述下一级业务的反馈,向所述下一级业务发送重试同步请求。
12.在一种可能的实现方式中,所述方法还包括:
13.向下一级业务发送同步请求;
14.响应于在预设的时限内接收到所述下一级业务的反馈,且所述下一级业务的反馈的内容为同步失败,向下一级业务发送重试同步请求。
15.在一种可能的实现方式中,所述方法还包括:
16.响应于未能执行与所述同步请求对应的数据处理,向所述上一级业务发送内容为同步失败的反馈;所述内容为同步失败的反馈用于供所述微服务业务链路中的全局事务装饰器感知,以使所述全局事务装饰器控制所述微服务业务链路中的首个业务发送重试同步请求。
17.在一种可能的实现方式中,所述方法还包括:
18.向下一级业务发送同步请求;
19.响应于在预设的时限内未接收到所述下一级业务的反馈,向所述上一级业务发送内容为同步超时的反馈;所述内容为同步超时的反馈用于供所述微服务业务链路中的全局
事务装饰器感知,以使所述全局事务装饰器控制所述微服务业务链路中的首个业务发送重试同步请求。
20.在一种可能的实现方式中,所述方法还包括:
21.向下一级业务发送同步请求;
22.响应于在预设的时限内接收到所述下一级业务的反馈,且所述下一级业务的反馈的内容为同步失败,向预设的云端服务发送内容为同步失败的反馈,以使所述云端服务向所述微服务业务链路中的首个业务发送重试同步请求。
23.在一种可能的实现方式中,所述方法还包括:
24.向下一级业务发送同步请求;
25.响应于在预设的时限内未接收到所述下一级业务的反馈,向预设的云端服务发送内容为同步超时的反馈,以使所述云端服务向所述微服务业务链路中的首个业务发送重试同步请求。
26.在一种可能的实现方式中,所述方法还包括:
27.向下一级业务发送同步请求;
28.响应于在预设的时限内接收到所述下一级业务的反馈,且所述下一级业务的反馈的内容为同步失败,向预设的云端服务发送内容为同步失败的反馈,以使所述云端服务向所述下一级业务发送重试同步请求。
29.在一种可能的实现方式中,所述方法还包括:
30.向下一级业务发送同步请求;
31.响应于在预设的时限内未接收到所述下一级业务的反馈,向预设的云端服务发送内容为同步超时的反馈,以使所述云端服务向所述下一级业务发送重试同步请求。
32.在一种可能的实现方式中,所述方法还包括:
33.响应于所述本地事务记录中存在与所述同步请求相对应的记录,向上一级业务发送内容为同步成功的反馈。
34.在一种可能的实现方式中,所述本地事务记录中与所述同步请求相对应的记录包括:所述同步请求的标识和处理所述同步请求业务的对应标识。
35.基于同一发明构思,本技术实施例还提供了一种业务数据的同步装置,包括:
36.接收模块,被配置为接收来自上一级业务的重试同步请求;所述重试同步请求与所述上一级业务先前发送的同步请求相对应;
37.查询模块,被配置为查询本地事务记录中是否存在与所述同步请求相对应的处理记录;
38.执行模块,被配置为响应于所述本地事务记录中不存在与所述同步请求相对应的处理记录,执行与所述同步请求对应的数据处理,并在所述本地事务记录中写入与所述同步请求相对应的处理记录。
39.基于同一发明构思,本技术实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任意一项所述的业务数据的同步方法。
40.基于同一发明构思,本技术实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上
述任一所述的业务数据的同步方法。
41.基于同一发明构思,本技术实施例还提供了一种计算机程序产品,其包括计算机程序指令,所述计算机指令用于使所述计算机程序产品执行上述任一所述的业务数据的同步方法。
42.从上面所述可以看出,本技术提供的业务数据的同步方法及相关设备,通过接收来自上一级业务的重试同步请求;所述重试同步请求与所述上一级业务先前发送的同步请求相对应;查询本地事务记录中是否存在与所述同步请求相对应的处理记录;响应于所述本地事务记录中不存在与所述同步请求相对应的处理记录,执行与所述同步请求对应的数据处理,并在所述本地事务记录中写入与所述同步请求相对应的处理记录。本技术实施例通过针对微服务业务链路中的每一业务构建单独的本地事务记录,在执行同步请求后仅需记录该同步请求对应的标识以及执行该同步请求的对应业务的标识,在有效保障了用户的业务数据的安全性和私密性的前提下,有效实现了业务同步,保障了全局数据的一致性,且该记录单独用于记录对应业务是否执行了同步请求,还实现了有效的去中心化的技术效果。
附图说明
43.为了更清楚地说明本技术或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1为本技术实施例的业务数据的同步方法的流程示意图;
45.图2为本技术实施例的准实时中断点补偿方案示意图;
46.图3为本技术实施例的准实时入口处补偿方案示意图;
47.图4为本技术实施例的异步入口补偿方案示意图;
48.图5为本技术实施例的异步中断点补偿方案示意图;
49.图6为本技术实施例的业务数据同步装置结构示意图;
50.图7为本技术实施例的电子设备结构示意图。
具体实施方式
51.为使本技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本技术进一步详细说明。
52.可以理解的是,在使用本技术各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本技术所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
53.例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本技术技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
54.作为一种可选的但非限定性的实现方式,响应于接收到用户的主动请求,向用户
发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
55.可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本技术的实现方式构成限定,其它满足相关法律法规的方式也可应用于本技术的实现方式中。
56.可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
57.需要说明的是,除非另外定义,本技术实施例使用的技术术语或者科学术语应当为本技术所属领域内具有一般技能的人士所理解的通常意义。本技术实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
58.如背景技术部分所述,当前微服务领域下存在许多服务间调用的场景,其中涉及到多个服务需要对应更改数据以及同步数据的情况,若没有一个好的同步方法则容易产生脏数据。
59.目前现有技术中,针对于业务数据同步的解决方案有自动事务模式、预处理-确认-回滚模式、长事务模式和xa模式,xa模式是利用事务资源对xa协议的支持,以xa协议的机制来管理分支事务的一种解决方案,xa协议是一种分布式事务处理规范。
60.自动事务模式通过拦截业务结构化查询语言实现,第一阶段拦截业务的结构化查询语言,生成前映像、后映像、回滚日志、全局行锁;第二阶段进行提交,删除快照和释放锁,或者利用回滚日志和前映像二阶段进行回滚。
61.预处理-确认-回滚需要业务每个接口都实现尝试、确认、回滚逻辑,对业务侵入性较大。此外,预处理-确认-回滚模式还需要考虑空回滚和防悬挂等问题。
62.长事务模式适用于业务流程长且需要保证事务最终一致性的业务系统,长事务模式一阶段就会提交本地事务,无锁、长流程情况下可以保证性能。有点类似乐观锁。长事务模式下分布式事务执行过程中,依次执行各参与者的正向操作,如果所有正向操作均执行成功,那么分布式事务提交。如果任何一个正向操作执行失败,那么分布式事务会退回去执行前面各参与者的逆向回滚操作。
63.在xa模式下,需要有一个全局协调器,每一个数据库事务完成后,进行第一阶段预提交,通知协调器、并把结果给协调器。协调器等所有分支事务操作完成、都预提交后,进行第二步:协调器通知每个数据库进行逐个确认或回滚。
64.经由上述介绍可知,现有技术中针对上述问题的解决方案的共同点为本身实现复杂,业务接入困难,且在接入业务时需要知道业务的含义以及业务的流转状态,导致使用方望而却步。
65.结合上述实际情况,本技术实施例提供了一种业务数据的同步方法及相关设备,通过接收来自上一级业务的重试同步请求;所述重试同步请求与所述上一级业务先前发送
的同步请求相对应;查询本地事务记录中是否存在与所述同步请求相对应的处理记录;响应于所述本地事务记录中不存在与所述同步请求相对应的处理记录,执行与所述同步请求对应的数据处理,并在所述本地事务记录中写入与所述同步请求相对应的处理记录。本技术实施例通过针对微服务业务链路中的每一业务构建单独的本地事务记录,在执行同步请求后仅需记录该同步请求对应的标识以及执行该同步请求的对应业务的标识,且在业务接入时只需要通过软件包简单接入即可,无需配置回调,无需业务方使用长连接等技术,无需实现对业务的入侵,有效保障了用户的业务数据的安全性和私密性。另外,该记录单独用于记录对应业务是否执行了同步请求,还实现了有效的去中心化的技术效果,且本地事务记录还嵌入了各业务本身的局部事务内,通过局部事务来保障全局数据的一致性,有效的实现了在不入侵业务的前提下,对业务数据进行同步。
66.以下,通过具体的实施例来详细说明本说明书一个或多个实施例的技术方案。
67.如图1所示,为本技术提出的一种程序控制方法的流程示意图。该方法具体包括:
68.步骤s101,接收来自上一级业务的重试同步请求;所述重试同步请求与所述上一级业务先前发送的同步请求相对应;
69.步骤s102,查询本地事务记录中是否存在与所述同步请求相对应的处理记录;
70.步骤s103,响应于所述本地事务记录中不存在与所述同步请求相对应的处理记录,执行与所述同步请求对应的数据处理,并在所述本地事务记录中写入与所述同步请求相对应的处理记录。
71.在一些实施例中,所述方法还包括:向下一级业务发送同步请求;响应于在预设的时限内未接收到所述下一级业务的反馈,向所述下一级业务发送重试同步请求。
72.在一些实施例中,所述方法还包括:向下一级业务发送同步请求;响应于在预设的时限内接收到所述下一级业务的反馈,且所述下一级业务的反馈的内容为同步失败,向下一级业务发送重试同步请求。
73.在一些实施例中,所述方法还包括:响应于所述本地事务记录中存在与所述同步请求相对应的记录,向上一级业务发送内容为同步成功的反馈。
74.在一些实施例中,所述本地事务记录中与所述同步请求相对应的记录包括:所述同步请求的标识和处理所述同步请求业务的对应标识。
75.在一些实施例中,在本技术的微服务业务链路的同步场景中,例如在网上购物时,用户购买了商品a,价格为b,则此时对应的账户的业务模块需要针对前述价格b对自身业务模块所记录的数据进行相应的调整,用户的账户的业务模块需要扣款,商家的业务模块需要增款,此外,对应的,管理商品库存的业务模块也需要根据用户购买的商品a的类型以及对应的库存进行减少,上述步骤可以存在一个预设的同步过程,例如用户的账户的业务模块位于微服务链路中的首个,则用户的账户的业务模块先接收到针对购买商品a的同步请求,执行扣款,之后发送该同步请求至下一业务模块,例如可以发送至商家的业务模块,执行该同步请求,进行增款,之后再发送该同步请求至下一业务模块即可,后续步骤与前述类似,故在此不再赘述。为了使得各个业务间的数据同步,本技术实施例通过构建一个封装好的软件开发工具包来接入待同步的微服务业务链路中的每一个业务。且针对每一个业务分别部署一个本地事务装饰器并在每个业务对应的业务库中设置一个本地事务记录。通过针对微服务业务链路中的每一业务构建单独的本地事务记录,在执行同步请求后仅需记录该
同步请求对应的标识以及执行该同步请求的对应业务的标识,在有效保障了用户的业务数据的安全性和私密性的前提下,有效实现了业务同步,保障了全局数据的一致性,且该记录单独用于记录对应业务是否执行了同步请求,还实现了有效的去中心化的技术效果。
76.在一些实施例中,本地事务装饰器用于代理原本的远程调用过程,通俗来讲,可以理解为本地事务装饰器对业务间的同步请求做了拦截,并在拦截后立刻将该同步请求发送给预定微服务业务链路需要同步的下一业务目的是为了使得同步请求经过本地事务装饰器,以使得该业务所对应的业务库中设置的本地事务记录能够相应的响应。
77.在一些实施例中,本地事务记录与对应业务的对应的本地数据库可以封装到一个事务中。针对于事务,其具有四大特性,第一是原子性,即对于事务而言,要么全部完成,要么全部取消,若事务崩溃,则状态会回到事务改变之前的状态;第二是隔离性,若两个事务同时运行,则两个事务无论谁先结束,其最终的结果一定是相同的;第三是持久性,即一旦事务提交,不论发生了什么,例如数据崩溃或者出现错误,数据需要保存在数据库中;第四是一致性,即只有合法的数据才能写入数据库中,这里对于合法的数据的定义是依照关系约束和函数约束的数据。因此,本地事务记录与对应业务的对应的本地数据库同时变动,且变动结果的成败也是同步的。本技术通过局部事务的同步来保障全局数据的一致性,另外,本地事务记录的内容与业务无关,有效的实现了在不入侵业务的前提下,对业务数据进行同步。
78.在一些实施例中,上述本地事务记录可以以表格的形式体现,其中的内容可以包括有本次同步请求的标识,不同的同步请求设置有不同的标识,这是为了能够在本地事务记录中区分究竟执行了哪次同步请求。还可以包括有处理同步请求业务的对应标识,这是为了记录究竟是哪个业务执行了该同步请求,有了这些记录,可以在所有的同步请求结束后,对所有的本地事务记录进行汇总检查,以便于能够清晰的知道具体是哪个业务没有执行哪个同步请求,在排查错误时能够更加的有针对性。
79.在实际的业务数据的同步过程中,由于存在许多不可控因素,因此,针对于每一个业务都有可能出现同步失败的情况,因此需要方案来对同步失败的情况进行补偿。
80.在一些实施例中,参考图2,为本技术实施例的准实时中断点补偿方案示意图。
81.首先,当数据发生变动时,业务数据也需要对应的发生变动,以保证数据的一致性。此时,可以有一同步请求发送至对应的微服务业务链路中,在本实施例中为服务a-服务b-服务c,即图2中示出的:service a-service b-service c,图中示出的consistency proxy即为本地事务装饰器,对同步请求(rpc)进行代理。
82.进一步的,当该同步请求流转到业务a模块时,业务a模块需要执行该同步请求,具体的在实际情况中可以为扣款、扣库存、消耗游戏货币等等,针对于不同的业务内容即对应于不同的执行情况。在正常情况下,该同步请求在业务a模块模块中正常执行,相应的,对应的业务库a中的本地事务记录(本地账本)会相应的记录:某次同步请求以及业务a模块执行了该请求。在本实施例中,本地事务记录与业务a模块记录的成功与失败是同步发生的。
83.因为在本实施例中,业务a模块为首个业务模块,若在业务a模块执行该同步请求时失败,则此时无法向业务a模块发起重试请求,因此此时直接认定此次的同步请求失败即可,且在认定此次的同步请求失败后,此时的整条微服务业务链路中的业务数据是未经过变动的,因此虽然此次同步请求执行失败了,但仍旧保证了整条微服务业务链路中的每个
服务数据的一致性。
84.进一步的,若业务a模块执行该同步请求成功,则此时需要按照预设的业务链路继续执行同步请求,则此时业务a模块会向业务b模块发送该同步请求(rpc),在本实施例中,下一需要执行业务同步请求的业务模块为业务b模块。在正常情况下,业务b模块成功的执行了该同步请求,业务b模块会向其上一级业务(在本实施例中为业务a模块),发送内容为同步成功的反馈,此外,在业务b模块执行对应的同步请求时,此处在业务a模块会设置一预设的时限,以保证同步的时效性要求,当业务a模块在预设的时限内接收到发送的内容为同步成功的反馈时,则认定业务b模块完成了该同步请求。
85.相应的,若在该预设的时限内,未接收到业务b模块发送回来的任何反馈,则此时业务a模块会认定业务b模块同步失败,则此时业务a模块会向业务b模块发送一个重试同步请求(重试2rpc),此时不同的是,业务b模块在接收到该重试同步请求时会先检查(查账)其对应的业务库b中所属的本地事务记录中是否存在业务b模块执行了该同步请求的记录。因为在本实施例中,可以出现业务b模块成功的执行了该同步请求,但其执行的时间超出了预设的时限,或者是其发送反馈时出现了错误,没能够及时的向上一级业务发送对应的反馈。
86.进一步的,若检查时发现其对应的业务库b中所属的本地事务记录中存在业务b模块执行了该同步请求的记录,则业务b模块无需针对该同步请求再次执行,因为本地事务记录与业务库b已经被封装到了一个事务中,二者同时成功同时失败,因此,若本地事务记录中存在对应的记录,则业务b模块必然已经执行了本地事务记录中所记载的对应的同步请求。
87.相应的,若检查时发现其对应的业务库b中所属的本地事务记录中不存在业务b模块执行了该同步请求的记录,则业务b模块需要重新执行该同步请求。在执行完之后,业务b模块继续将该同步请求发送至下一服务模块,即业务c模块。
88.针对于业务c模块,同样的,在业务b模块中也设置有对应的预设的时限,与上述实施例一致,在正常情况下,业务c模块成功的执行了该同步请求,业务c模块会向其上一级业务(在本实施例中为业务b模块),发送内容为同步成功的反馈,此外,在业务c模块执行对应的同步请求时,此处在业务b模块会设置一预设的时限,当业务b模块在预设的时限内接收到发送的内容为同步成功的反馈时,则认定业务c模块完成了该同步请求。
89.相应的,若在该预设的时限内,未接收到业务c模块发送回来的任何反馈,则此时业务b模块会认定业务c模块同步失败,则此时业务b模块会向业务c模块发送一个重试同步请求(重试4rpc),此时不同的是,业务c模块在接收到该重试同步请求时会先检查(查账)其对应的业务库c中所属的本地事务记录中是否存在业务c模块执行了该同步请求的记录。因为在本实施例中,可以出现业务c模块成功的执行了该同步请求,但其执行的时间超出了预设的时限,或者是其发送反馈时出现了错误,没能够及时的向上一级业务发送对应的反馈。
90.进一步的,若检查时发现其对应的业务库c中所属的本地事务记录中存在业务c模块执行了该同步请求的记录,则业务c模块无需针对该同步请求再次执行,因为本地事务记录与业务库c已经被封装到了一个事务中,二者同时成功同时失败,因此,若本地事务记录中存在对应的记录,则业务c模块必然已经执行了本地事务记录中所记载的对应的同步请求。
91.本技术上述实施例在发现对应的下一业务出现问题时能够及时的给出反馈,实时
的对同步失败的业务发起重试同步请求,以保证微服务业务链路整体的数据同步的时效性,且在微服务业务链路中的某个业务中断服务时也并不会影响此时的业务进行数据同步,此外,通过针对微服务业务链路中的每一业务构建单独的本地事务记录,在执行同步请求后仅需记录该同步请求对应的标识以及执行该同步请求的对应业务的标识,且在业务接入时只需要通过软件包简单接入即可,无需配置回调,无需业务方使用长连接等技术,无需实现对业务的入侵,有效保障了用户的业务数据的安全性和私密性。另外,该记录单独用于记录对应业务是否执行了同步请求,还实现了有效的去中心化的技术效果,且本地事务记录还嵌入了各业务本身的局部事务内,通过局部事务来保障全局数据的一致性,有效的实现了在不入侵业务的前提下,对业务数据进行同步。
92.在一些实施例中,所述方法还包括:响应于未能执行与所述同步请求对应的数据处理,向所述上一级业务发送内容为同步失败的反馈;所述内容为同步失败的反馈用于供所述微服务业务链路中的全局事务装饰器感知,以使所述全局事务装饰器控制所述微服务业务链路中的首个业务发送重试同步请求。
93.在一些实施例中,所述方法还包括:向下一级业务发送同步请求;响应于在预设的时限内未接收到所述下一级业务的反馈,向所述上一级业务发送内容为同步超时的反馈;所述内容为同步超时的反馈用于供所述微服务业务链路中的全局事务装饰器感知,以使所述全局事务装饰器控制所述微服务业务链路中的首个业务发送重试同步请求。
94.在一些实施例中,参考图3,为本技术实施例的准实时入口处补偿方案示意图。
95.此时,可以有一同步请求发送至对应的微服务业务链路中,在本实施例中为服务a-服务b-服务c,即图2中示出的:service a-service b-service c,图中示出的本地事务装饰器,对同步请求(rpc)进行代理。
96.进一步的,当该同步请求流转到业务a模块时,业务a模块需要执行该同步请求,具体的在实际情况中可以为扣款、扣库存、消耗游戏货币等等,针对于不同的业务内容即对应于不同的执行情况。在正常情况下,该同步请求在业务a模块模块中正常执行,相应的,对应的业务库a中的本地事务记录(本地账本)会相应的记录:某次同步请求以及业务a模块执行了该请求。在本实施例中,本地事务记录与业务a模块记录的成功与失败是同步发生的。
97.若在业务a模块执行该同步请求时失败了,则将该同步失败信息反馈至全局事务装饰器中。前述全局事务装饰器位于整个微服务业务链路中的首个业务模块中,且其置于该首个业务模块执行同步请求的前端,因为只有这样才能够在首个业务模块执行同步请求失败时,以使得该全局事务装饰器来向首个业务模块发送重试同步请求,以使得该首个业务模块重新执行该同步请求。
98.在一些实施例中,当同步请求流转到业务a模块时,若业务a模块在执行该同步请求时成功了,则在其对应的本地事务记录中记录本次同步请求的标识以及执行本次同步请求的业务模块,且向下一级业务发送该同步请求,在本实施例中为业务b模块,针对业务b模块而言,若其在执行同步请求时也成功了则相应的记录在业务库b中的本地事务记录中,之后继续流转至业务c模块,业务c模块若在执行该同步请求时也成功了,则与上述业务模块的行为一致,故在此不做赘述。
99.进一步的,若业务a模块执行该同步请求成功,则此时需要按照预设的业务链路继续执行同步请求,则此时业务a模块会向业务b模块发送该同步请求(rpc),在本实施例中,
下一需要执行业务同步请求的业务模块为业务b模块。若在该预设的时限内,未接收到业务b模块发送回来的任何反馈,则此时业务a模块会认定业务b模块同步失败,则此时业务a模块会向全局事务装饰器发送内容为同步失败的反馈。
100.此外,若该同步请求在业务b模块中未能够成功执行,则在业务b模块所对应的本地事务记录中不会存在对应的处理记录,且业务b模块会向业务a模块发送内容为同步失败的反馈,之后,业务a模块会向全局事务装饰器发送内容为同步失败的反馈。
101.进一步的,当全局事务装饰器接收到该反馈后,会向微服务业务链路中的首个业务模块发送重试同步请求,在本实施例中,为业务a模块。
102.进一步的,当业务a模块接收到该重试同步请求后,检查其本地事务记录中是否存在与该同步请求相对应的处理记录,若存在,则将该重试同步请求发送至下一级业务,若不存在,则重新执行该同步请求,并在其所对应的本地事务记录中对应记录。之后继续发送该重试同步请求至业务b模块,并查询业务b模块中是否存在与所述同步请求相对应的处理记录,若存在,则不执行该同步请求并将前述重试同步请求继续发送至下一级业务,若不存在,则重新执行该同步请求并在其对应的本地事务记录中记录对应的处理记录。
103.在一些实施例中,该同步请求在业务a模块和业务b模块中均成功执行,但业务b模块未在预设的时限内接收到业务c模块的反馈,则此时业务b模块向业务a模块发送内容为同步超时的反馈,业务a模块向全局事务装饰器发送内容为同步失败的反馈,当全局事务装饰器接收到内容为同步失败的反馈后,向业务a模块发送业务重试请求,之后的步骤在上述实施例中已经讲明,故在此不做赘述。
104.在一些实施例中,同步请求在业务a模块和业务b模块中均成功执行,但在业务c模块中未执行成功,则业务c模块向业务b模块发送内容为同步失败的反馈,业务b模块继续向业务a模块反馈,在一般的实施例中,直至反馈至首个业务为止,在本实施例中,即为反馈至业务a模块即可,在业务a模块中,全局事务装饰器向业务a模块发送重试同步请求,后续步骤在前述实施例中已说明,故在此不做赘述。
105.本技术上述实施例在同步请求执行失败或未在预设时限内接收到其对应的下一业务的同步成功的反馈时,可以直接向上一级发送失败反馈,直至该失败反馈到达微服务业务链路中的首个业务,从头开始执行同步请求,这样即便是微服务业务链路中的首个业务执行同步请求失败也可以直接发起重试,而不是直接结束此次的数据同步任务,减少了重新发起同步请求的冗余步骤。此外,通过针对微服务业务链路中的每一业务构建单独的本地事务记录,在执行同步请求后仅需记录该同步请求对应的标识以及执行该同步请求的对应业务的标识,且在业务接入时只需要通过软件包简单接入即可,无需配置回调,无需业务方使用长连接等技术,无需实现对业务的入侵,有效保障了用户的业务数据的安全性和私密性。另外,该记录单独用于记录对应业务是否执行了同步请求,还实现了有效的去中心化的技术效果,且本地事务记录还嵌入了各业务本身的局部事务内,通过局部事务来保障全局数据的一致性,有效的实现了在不入侵业务的前提下,对业务数据进行同步。
106.在一些实施例中,所述方法还包括:向下一级业务发送同步请求;响应于在预设的时限内接收到所述下一级业务的反馈,且所述下一级业务的反馈的内容为同步失败,向预设的云端服务发送内容为同步失败的反馈,以使所述云端服务向所述微服务业务链路中的首个业务发送重试同步请求。
107.在一些实施例中,所述方法还包括:向下一级业务发送同步请求;响应于在预设的时限内未接收到所述下一级业务的反馈,向预设的云端服务发送内容为同步超时的反馈,以使所述云端服务向所述微服务业务链路中的首个业务发送重试同步请求。
108.在一些实施例中,参考图4,为本技术实施例的异步入口补偿方案示意图。
109.在一些实施例中,当同步请求流转到业务a模块时,若业务a模块在执行该同步请求时成功了,则在其对应的本地事务记录中记录本次同步请求的标识以及执行本次同步请求的业务模块,且向下一级业务发送该同步请求,在本实施例中为业务b模块,针对业务b模块而言,若其在执行同步请求时也成功了则相应的记录在业务库b中的本地事务记录中,之后继续流转至业务c模块,业务c模块若在执行该同步请求时也成功了,则与上述业务模块的行为一致,故在此不做赘述。
110.在一些实施例中,当同步请求流转到业务a模块时,若业务a模块在执行该同步请求时失败了,则业务a模块将内容为同步失败的反馈发送至预设的云端服务(consistency control),以使云端服务向微服务业务链路中的首个业务发送重试同步请求,在本技术中,即为向业务a模块发送重试同步请求,后续判断步骤在前述实施例中已释明,故在此不再赘述。此外,在图4中,consistency rpc client与consistency control可以设置于相同或不同的云服务器中。
111.在一些实施例中,当同步请求在业务a模块中同步成功,在业务b模块中同步失败时,业务b模块会向业务a模块发送内容为同步失败的反馈,进一步的,业务a模块向云端服务发送内容为同步失败的反馈,云端服务进而向业务a模块发送重试同步请求,之后进行相应的查询判断步骤,在此不再赘述。同样的,在业务a模块中仍设置有预设的时限,若在预设的时限内未接收到业务b模块的任意反馈,则向云端服务发送内容为同步失败的反馈,进而云端服务向业务a模块发送重试同步请求。
112.在一些实施例中,当同步请求在业务a模块和业务b模块中同步成功,在业务c模块中同步失败时,业务c模块会向业务b模块发送内容为同步失败的反馈,业务b模块进而向云端服务发送内容为同步失败的反馈,云端服务进而向业务a模块发送重试同步请求,之后进行相应的查询判断步骤,在此不再赘述。同样的,在业务b模块中仍设置有预设的时限,若在预设的时限内未接收到业务c模块的任意反馈,则向云端服务发送内容为同步失败的反馈,进而云端服务向业务a模块发送重试同步请求。
113.本技术上述实施例在执行在同步请求执行失败或未在预设时限内接收到其对应的下一业务的同步成功的反馈时,可以向云端服务反馈同步失败的信息,进而再由云端服务向微服务业务链路中的首个业务发送重试同步请求。由云端服务控制重试同步请求的发送适用于对时效性要求不高的业务,在向首个业务发送重试同步请求时可以有一定的延时,此外,通过针对微服务业务链路中的每一业务构建单独的本地事务记录,在执行同步请求后仅需记录该同步请求对应的标识以及执行该同步请求的对应业务的标识,且在业务接入时只需要通过软件包简单接入即可,无需配置回调,无需业务方使用长连接等技术,无需实现对业务的入侵,有效保障了用户的业务数据的安全性和私密性。另外,该记录单独用于记录对应业务是否执行了同步请求,还实现了有效的去中心化的技术效果,且本地事务记录还嵌入了各业务本身的局部事务内,通过局部事务来保障全局数据的一致性,有效的实现了在不入侵业务的前提下,对业务数据进行同步。
114.在一些实施例中,所述方法还包括:向下一级业务发送同步请求;响应于在预设的时限内接收到所述下一级业务的反馈,且所述下一级业务的反馈的内容为同步失败,向预设的云端服务发送内容为同步失败的反馈,以使所述云端服务向所述下一级业务发送重试同步请求。
115.在一些实施例中,所述方法还包括:向下一级业务发送同步请求;响应于在预设的时限内未接收到所述下一级业务的反馈,向预设的云端服务发送内容为同步超时的反馈,以使所述云端服务向所述下一级业务发送重试同步请求。
116.在一些实施例中,参考图5,为本技术实施例的异步中断点补偿方案示意图。
117.在一些实施例中,当同步请求流转到业务a模块时,若业务a模块在执行该同步请求时成功了,则在其对应的本地事务记录中记录本次同步请求的标识以及执行本次同步请求的业务模块,且向下一级业务发送该同步请求,在本实施例中为业务b模块,针对业务b模块而言,若其在执行同步请求时也成功了则相应的记录在业务库b中的本地事务记录中,之后继续流转至业务c模块,业务c模块若在执行该同步请求时也成功了,则与上述业务模块的行为一致,故在此不做赘述。
118.在一些实施例中,当同步请求流转到业务a模块时,若业务a模块在执行该同步请求时失败了,则业务a模块将内容为同步失败的反馈发送至预设的云端服务(consistency control),以使云端服务向微服务业务链路中的对应的中断的业务发送重试同步请求,在上述实施例中为业务a模块。后续判断步骤在前述实施例中已释明,故在此不再赘述。
119.在一些实施例中,当同步请求在业务a模块中同步成功,在业务b模块中同步失败时,业务b模块会向业务a模块发送内容为同步失败的反馈,进一步的,业务a模块向云端服务发送内容为同步失败的反馈,云端服务进而向业务b模块发送重试同步请求,之后进行相应的查询判断步骤,在此不再赘述。同样的,在业务a模块中仍设置有预设的时限,若在预设的时限内未接收到业务b模块的任意反馈,则向云端服务发送内容为同步失败的反馈,进而云端服务向业务b模块发送重试同步请求。
120.在一些实施例中,当同步请求在业务a模块和业务b模块中同步成功,在业务c模块中同步失败时,业务c模块会向业务b模块发送内容为同步失败的反馈,业务b模块进而向云端服务发送内容为同步失败的反馈,云端服务进而向业务c模块发送重试同步请求,之后进行相应的查询判断步骤,在此不再赘述。同样的,在业务b模块中仍设置有预设的时限,若在预设的时限内未接收到业务c模块的任意反馈,则向云端服务发送内容为同步失败的反馈,进而云端服务向业务c模块发送重试同步请求。
121.本技术上述实施例在执行在同步请求执行失败或未在预设时限内接收到其对应的下一业务的同步成功的反馈时,可以向云端服务反馈同步失败的信息,进而再由云端服务向微服务业务链路中的对应的执行同步请求失败的业务直接发起请求,可以免于原本成功执行同步请求的业务再次接收到同步请求,进而减免了查账等一系列的计算量。
122.另外,云端服务向微服务业务链路中的对应的执行同步请求失败的业务发送重试同步请求时,可以间隔一段时间,因此上述实施例可以适用于对于时效性要求不高的场景,或无法实现时效性较高的场景。
123.通过上述实施例可以看出,本技术实施例通过接收来自上一级业务的重试同步请求;所述重试同步请求与所述上一级业务先前发送的同步请求相对应;查询本地事务记录
中是否存在与所述同步请求相对应的处理记录;响应于所述本地事务记录中不存在与所述同步请求相对应的处理记录,执行与所述同步请求对应的数据处理,并在所述本地事务记录中写入与所述同步请求相对应的处理记录。本技术实施例通过针对微服务业务链路中的每一业务构建单独的本地事务记录,在执行同步请求后仅需记录该同步请求对应的标识以及执行该同步请求的对应业务的标识,且在业务接入时只需要通过软件包简单接入即可,无需配置回调,无需业务方使用长连接等技术,无需实现对业务的入侵,有效保障了用户的业务数据的安全性和私密性。另外,该记录单独用于记录对应业务是否执行了同步请求,还实现了有效的去中心化的技术效果,且本地事务记录还嵌入了各业务本身的局部事务内,通过局部事务来保障全局数据的一致性,有效的实现了在不入侵业务的前提下,对业务数据进行同步。
124.需要说明的是,本技术实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本技术实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
125.需要说明的是,上述对本技术的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
126.基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种业务数据的同步装置。
127.参考图6,所述业务数据的同步装置,包括:
128.接收模块,被配置为接收来自上一级业务的重试同步请求;所述重试同步请求与所述上一级业务先前发送的同步请求相对应;
129.查询模块,被配置为查询本地事务记录中是否存在与所述同步请求相对应的处理记录;
130.执行模块,被配置为响应于所述本地事务记录中不存在与所述同步请求相对应的处理记录,执行与所述同步请求对应的数据处理,并在所述本地事务记录中写入与所述同步请求相对应的处理记录。
131.在一种可能的实现方式中,所述装置,还包括:
132.第一发送模块,被配置为向下一级业务发送同步请求;
133.第二发送模块,被配置为响应于在预设的时限内未接收到所述下一级业务的反馈,向所述下一级业务发送重试同步请求。
134.在一种可能的实现方式中,所述装置,还包括:
135.第三发送模块,被配置为向下一级业务发送同步请求;
136.第四发送模块,被配置为响应于在预设的时限内接收到所述下一级业务的反馈,且所述下一级业务的反馈的内容为同步失败,向下一级业务发送重试同步请求。
137.在一种可能的实现方式中,所述装置,还包括:
138.第五发送模块,被配置为响应于未能执行与所述同步请求对应的数据处理,向所
述上一级业务发送内容为同步失败的反馈;所述内容为同步失败的反馈用于供所述微服务业务链路中的全局事务装饰器感知,以使所述全局事务装饰器控制所述微服务业务链路中的首个业务发送重试同步请求。
139.在一种可能的实现方式中,所述装置,还包括:
140.第六发送模块,被配置为向下一级业务发送同步请求;
141.第七发送模块,被配置为响应于在预设的时限内未接收到所述下一级业务的反馈,向所述上一级业务发送内容为同步超时的反馈;所述内容为同步超时的反馈用于供所述微服务业务链路中的全局事务装饰器感知,以使所述全局事务装饰器控制所述微服务业务链路中的首个业务发送重试同步请求。
142.在一种可能的实现方式中,所述装置,还包括:
143.第八发送模块,被配置为向下一级业务发送同步请求;
144.第九发送模块,被配置为响应于在预设的时限内接收到所述下一级业务的反馈,且所述下一级业务的反馈的内容为同步失败,向预设的云端服务发送内容为同步失败的反馈,以使所述云端服务向所述微服务业务链路中的首个业务发送重试同步请求。
145.在一种可能的实现方式中,所述装置,还包括:
146.第十发送模块,被配置为向下一级业务发送同步请求;
147.第十一发送模块,被配置为响应于在预设的时限内未接收到所述下一级业务的反馈,向预设的云端服务发送内容为同步超时的反馈,以使所述云端服务向所述微服务业务链路中的首个业务发送重试同步请求。
148.在一种可能的实现方式中,所述装置,还包括:
149.第十二发送模块,被配置为向下一级业务发送同步请求;
150.第十三发送模块,被配置为响应于在预设的时限内接收到所述下一级业务的反馈,且所述下一级业务的反馈的内容为同步失败,向预设的云端服务发送内容为同步失败的反馈,以使所述云端服务向所述下一级业务发送重试同步请求。
151.在一种可能的实现方式中,所述装置,还包括:
152.第十四发送模块,被配置为向下一级业务发送同步请求;
153.第十五发送模块,被配置为响应于在预设的时限内未接收到所述下一级业务的反馈,向预设的云端服务发送内容为同步超时的反馈,以使所述云端服务向所述下一级业务发送重试同步请求。
154.在一种可能的实现方式中,所述装置,还包括:
155.第十六发送模块,被配置为响应于所述本地事务记录中存在与所述同步请求相对应的记录,向上一级业务发送内容为同步成功的反馈。
156.在一种可能的实现方式中,所述本地事务记录中与所述同步请求相对应的记录包括:所述同步请求的标识和处理所述同步请求业务的对应标识。
157.为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本技术时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
158.上述实施例的装置用于实现前述任一实施例中相应的业务数据的同步方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
159.基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种电子
设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的业务数据的同步方法。
160.图7示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
161.处理器1010可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
162.存储器1020可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
163.输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
164.通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
165.总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
166.需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
167.上述实施例的电子设备用于实现前述任一实施例中相应的业务数据的同步方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
168.基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的业务数据的同步方法。
169.本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
170.上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的业务数据的同步方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
171.基于同一发明构思,与上述任意实施例所述的业务数据的同步方法相对应的,本公开还提供了一种计算机程序产品,其包括计算机程序指令。在一些实施例中,所述计算机程序指令可以由计算机的一个或多个处理器执行以使得所述计算机和/或所述处理器执行所述的业务数据的同步方法。对应于所述的业务数据的同步方法各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
172.上述实施例的计算机程序产品用于使所述计算机和/或所述处理器执行如上任一实施例所述的业务数据的同步方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
173.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本技术的范围(包括权利要求)被限于这些例子;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
174.另外,为简化说明和讨论,并且为了不会使本技术实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本技术实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本技术实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本技术的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本技术实施例。因此,这些描述应被认为是说明性的而不是限制性的。
175.尽管已经结合了本技术的具体实施例对本技术进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
176.本技术实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本技术实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本技术的保护范围之内。
技术特征:
1.一种业务数据的同步方法,应用于微服务业务链路中的业务,其特征在于,包括:接收来自上一级业务的重试同步请求;所述重试同步请求与所述上一级业务先前发送的同步请求相对应;查询本地事务记录中是否存在与所述同步请求相对应的处理记录;响应于所述本地事务记录中不存在与所述同步请求相对应的处理记录,执行与所述同步请求对应的数据处理,并在所述本地事务记录中写入与所述同步请求相对应的处理记录。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:向下一级业务发送同步请求;响应于在预设的时限内未接收到所述下一级业务的反馈,向所述下一级业务发送重试同步请求。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:向下一级业务发送同步请求;响应于在预设的时限内接收到所述下一级业务的反馈,且所述下一级业务的反馈的内容为同步失败,向下一级业务发送重试同步请求。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应于未能执行与所述同步请求对应的数据处理,向所述上一级业务发送内容为同步失败的反馈;所述内容为同步失败的反馈用于供所述微服务业务链路中的全局事务装饰器感知,以使所述全局事务装饰器控制所述微服务业务链路中的首个业务发送重试同步请求。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:向下一级业务发送同步请求;响应于在预设的时限内未接收到所述下一级业务的反馈,向所述上一级业务发送内容为同步超时的反馈;所述内容为同步超时的反馈用于供所述微服务业务链路中的全局事务装饰器感知,以使所述全局事务装饰器控制所述微服务业务链路中的首个业务发送重试同步请求。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:向下一级业务发送同步请求;响应于在预设的时限内接收到所述下一级业务的反馈,且所述下一级业务的反馈的内容为同步失败,向预设的云端服务发送内容为同步失败的反馈,以使所述云端服务向所述微服务业务链路中的首个业务发送重试同步请求。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:向下一级业务发送同步请求;响应于在预设的时限内未接收到所述下一级业务的反馈,向预设的云端服务发送内容为同步超时的反馈,以使所述云端服务向所述微服务业务链路中的首个业务发送重试同步请求。8.根据权利要求1所述的方法,其特征在于,所述方法还包括:向下一级业务发送同步请求;响应于在预设的时限内接收到所述下一级业务的反馈,且所述下一级业务的反馈的内
容为同步失败,向预设的云端服务发送内容为同步失败的反馈,以使所述云端服务向所述下一级业务发送重试同步请求。9.根据权利要求1所述的方法,其特征在于,所述方法还包括:向下一级业务发送同步请求;响应于在预设的时限内未接收到所述下一级业务的反馈,向预设的云端服务发送内容为同步超时的反馈,以使所述云端服务向所述下一级业务发送重试同步请求。10.根据权利要求1至9任一所述的方法,其特征在于,所述方法还包括:响应于所述本地事务记录中存在与所述同步请求相对应的记录,向上一级业务发送内容为同步成功的反馈。11.根据权利要求1至9任一所述的方法,其特征在于,所述本地事务记录中与所述同步请求相对应的记录包括:所述同步请求的标识和处理所述同步请求业务的对应标识。12.一种业务数据的同步装置,其特征在于,包括:接收模块,被配置为接收来自上一级业务的重试同步请求;所述重试同步请求与所述上一级业务先前发送的同步请求相对应;查询模块,被配置为查询本地事务记录中是否存在与所述同步请求相对应的处理记录;执行模块,被配置为响应于所述本地事务记录中不存在与所述同步请求相对应的处理记录,执行与所述同步请求对应的数据处理,并在所述本地事务记录中写入与所述同步请求相对应的处理记录。13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至11任意一项所述的方法。14.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行如权利要求1至11任意一项所述的方法。15.一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行如权利要求1至11中任意一项所述的方法。
技术总结
本申请提供一种业务数据的同步方法。所述方法包括:接收来自上一级业务的重试同步请求;所述重试同步请求与所述上一级业务先前发送的同步请求相对应;查询本地事务记录中是否存在与所述同步请求相对应的处理记录;响应于所述本地事务记录中不存在与所述同步请求相对应的处理记录,执行与所述同步请求对应的数据处理,并在所述本地事务记录中写入与所述同步请求相对应的处理记录。本申请实施例通过针对微服务业务链路中的每一业务构建单独的本地事务记录,在检查是否同步时无需入侵业务,且该记录单独用于记录对应业务是否执行了同步请求,另外本地事务记录嵌入各业务本身的局部事务内,有效的保障了全局数据一致性,完成了业务数据的同步。了业务数据的同步。了业务数据的同步。
技术研发人员:刘新星
受保护的技术使用者:北京字跳网络技术有限公司
技术研发日:2023.03.30
技术公布日:2023/7/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种双自锁手拉器的制作方法 下一篇:一种数据处理方法、装置、设备和存储介质与流程
