一种高性能实时一致的微服务执行方法及系统与流程

文档序号:29411062发布日期:2022-03-26 11:48阅读:213来源:国知局

1.本发明涉及分布式事务处理技术领域,尤其涉及一种高性能实时一致的微服务执行方法及系统。


背景技术:

2.目前主流的分布式事务的解决方案有两段式提交、三段式提交、补偿性事务、以及实现最终一致性等方式。
3.每一种分布式事务的解决方案有其各自的应用场景,如三段式提交适用于数据安全性要求高的场景,且能保证数据实时一致,但性能较低,且暂未有成熟的框架支持。补偿性事务方案类似于手动回滚,也能保证实时的一致性,但逻辑繁琐。最终一致性则有较好性能,但不能保证数据的实时一致性。


技术实现要素:

4.为解决现有技术的不足,本发明提出一种高性能实时一致的微服务执行方法及系统,结合两段式提交和三段式提交的执行策略,保证了分布式事务场景的数据实时一致性,且逻辑较简单,可靠性较高,适用于dubbo及springcloud等分布式框架项目中。
5.为实现以上目的,本发明所采用的技术方案包括:
6.一种高性能实时一致的微服务执行方法,其特征在于,包括:
7.s1、获取微服务调用请求;
8.s2、生成对应微服务调用请求的验证文件,所述验证文件包括对应微服务调用请求所需要的微服务调用数量;
9.s3、根据微服务调用请求调用微服务,并轮询查询微服务调用数量;
10.s4、当查询到微服务调用数量为空时,反馈调用微服务失败;
11.s5、当查询到微服务调用数量不为0或空时,反馈调用微服务成功,并将验证文件中的微服务调用数量减1。
12.进一步地,所述验证文件还包括对应微服务调用请求的过期时间。
13.进一步地,所述步骤s3还包括:
14.当调用微服务用时超出过期时间时,停止调用并反馈调用微服务失败。
15.进一步地,所述方法还包括:
16.当反馈调用微服务失败时,回滚当前服务,并删除对应的验证文件。
17.进一步地,所述方法还包括:
18.s6、当查询到微服务调用数量为0时,反馈调用全部服务成功。
19.进一步地,所述步骤s3还包括:
20.轮询查询微服务调用数量时使用分布式锁。
21.本发明还涉及一种高性能实时一致的微服务执行系统,其特征在于,包括:
22.交互模块,用于获取微服务调用请求并反馈调用结果;
23.验证文件管理模块,用于生成对应微服务调用请求的验证文件;
24.查询模块,用于轮询查询并调整微服务调用数量。
25.本发明还涉及一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
26.本发明还涉及一种电子设备,其特征在于,包括处理器和存储器;
27.所述存储器,用于存储验证文件;
28.所述处理器,用于通过调用验证文件,执行上述的方法。
29.本发明还涉及一种计算机程序产品,包括计算机程序和/或指令,其特征在于,该计算机程序和/或指令被处理器执行时实现上述方法的步骤。
30.本发明的有益效果为:
31.采用本发明所述高性能实时一致的微服务执行方法及系统,结合两段式提交和三段式提交的执行策略,保证了分布式事务场景的数据实时一致性,且逻辑较简单,可靠性较高,适用于dubbo及springcloud等分布式框架项目中。
附图说明
32.图1为本发明高性能实时一致的微服务执行方法流程示意图。
33.图2为本发明高性能实时一致的微服务执行系统结构示意图。
具体实施方式
34.为了更清楚的理解本发明的内容,将结合附图和实施例详细说明。
35.本发明第一方面涉及一种步骤流程如图1所示的高性能实时一致的微服务执行方法,包括:
36.s1、获取微服务调用请求。微服务消费者申请调用其他多个微服务时,不通过分布式框架提供的的http或rpc方式进行调用。
37.s2、生成对应微服务调用请求的验证文件,所述验证文件包括对应微服务调用请求所需要的微服务调用数量和过期时间。优选的,通过雪花发码的方式生成唯一的验证文件,用生成的唯一验证文件作为对应被将调用的微服务调用数量存入redis中,设置验证文件的过期时间,并且把验证文件的值放入消息中通过指定方式调用各服务。
38.s3、根据微服务调用请求调用微服务,并使用分布式锁轮询查询微服务调用数量。优选的,当调用微服务用时超出过期时间时,停止调用并反馈调用微服务失败,回滚当前服务,并删除对应的验证文件。优选的,轮询查询也需要redis分布式锁,避免多个服务查询到的count值不一样而导致数据不一致。
39.s4、当查询到微服务调用数量为空时,代表验证文件对应调用超时或验证文件已经被其他服务删除,反馈调用微服务失败,回滚当前服务,并删除对应的验证文件。
40.s5、当查询到微服务调用数量不为0或空时,反馈调用微服务成功,并将验证文件中的微服务调用数量减1,优选的,通过redis分布式锁保证单条执行,避免同时更改数据。
41.s6、当查询到微服务调用数量为0时,反馈调用全部服务成功,并提交该事务,同时也需要删除所涉及的分布式锁。
42.优选的,采用的redis分布式锁可以引入java守护线程,保证分布式锁的安全性。
另一方面,在实际执行上述方法时,可以使用jdk的动态代理、自定义注解和spring的transaction控制事务的提交与回滚,服务在执行出错时调用端就能感知。同时,由于redis本身的分布式事务锁并不是绝对可靠,可以通过守护线程循环增加超时时间增加安全性,或者可以采用zookeeper提供的分布式锁。
43.本发明另一方面还涉及一种高性能实时一致的微服务执行系统,其结构如图2所示,包括:
44.交互模块,用于获取微服务调用请求并反馈调用结果;
45.验证文件管理模块,用于生成对应微服务调用请求的验证文件;
46.查询模块,用于轮询查询并调整微服务调用数量。
47.通过使用该系统,能够执行上述的运算处理方法并实现对应的技术效果。
48.本发明的实施例还提供能够实现上述实施例中的方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的方法的全部步骤。
49.本发明的实施例还提供一种用于执行上述方法的电子设备,作为该方法的实现装置,所述电子设备至少具备有处理器和存储器,特别是该存储器上存储有执行方法所需的数据和相关的计算机程序,例如验证文件等,并通过由处理器调用存储器中的数据、程序执行实现方法的全部步骤,并获得对应的技术效果。
50.优选的,该电子设备可以包含有总线架构,总线可以包括任意数量的互联的总线和桥,总线将包括由一个或多个处理器和存储器的各种电路链接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和接收器和发送器之间提供接口。接收器和发送器可以是同一个元件,即收发机,提供用于在传输介质上与各种其他系统通信的单元。处理器负责管理总线和通常的处理,而存储器可以被用于存储处理器在执行操作时所使用的数据。
51.额外的,所述电子设备还可以进一步包括通信模块、输入单元、音频处理器、显示器、电源等部件。其所采用的处理器(或称为控制器、操作控件)可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器接收输入并控制电子设备的各个部件的操作;存储器可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种,可储存上述有关的数据信息,此外还可存储执行有关信息的程序,并且处理器可执行该存储器存储的该程序,以实现信息存储或处理等;输入单元用于向处理器提供输入,例如可以为按键或触摸输入装置;电源用于向电子设备提供电力;显示器用于进行图像和文字等显示对象的显示,例如可为lcd显示器。通信模块即为经由天线发送和接收信号的发送机/接收机。通信模块(发送机/接收机)耦合到处理器,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)还经由音频处理器耦合到扬声器和麦克风,以经由扬声器提供音频输出,并接收来自麦克风的音频输入,从而实现通常的电信功能。音频处理器可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器还耦合到中央处理器,从而使得可以通过麦克风能够在本机上录音,且使得可以通过扬声器来播放本机上存储的声音。
52.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
53.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
54.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
55.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
56.以上所述仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换等都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
当前第1页1 2 
当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!
1