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

一种跨微服务事务编排方法与流程

2022-06-01 07:47:55 来源:中国专利 TAG:


1.本发明涉及微服务技术领域,尤其涉及一种跨微服务事务编排方法。


背景技术:

2.为了能够实现跨微服务事务,人们提出了2pc,tcc,saga等协议,阿里的seata,实现了tcc和saga协议,并提出了tcc协议的at mode,而现有的微服务事务编排时,往往需要通过修改整个微服务,需要对现有微服务进行改造,比如实现tcc协议的try,commit和cancel,或者使用库以实现seata at mode,才能达到较好使用效果。


技术实现要素:

3.本发明的目的是为了解决现有技术中存在的缺点,而提出的一种跨微服务事务编排方法。
4.为了实现上述目的,本发明采用了如下技术方案:一种跨微服务事务编排方法,包括以下步骤:
5.s1:微服务orchestrator开启全局事务,产生xid,并通过边车的http proxy访问微服务;
6.s2:db proxy根据sql语句产生回滚数据;
7.s3:通过db proxy提交本地事务,在db proxy提交本地事务时,需要找到对应xid去注册分支事务;
8.s4:找到xid后,db proxy注册分支事务;
9.s5:orchestrator提交或回滚全局事务。
10.为了使请求明确,本发明的改进有,所述s1中orchestrator到http proxy的http请求,请求带有xid。
11.为了处理sql语句,本发明的改进有,所述s1中通过边车的http proxy访问微服务后,微服务通过db proxy执行sql语句。
12.为了确定对应的xid,本发明的改进有,所述s3中寻找对应的xid时,本地事务的开始时间与结束时间,在http请求的开始时间与结束时间之间。
13.为了准确寻找对应的xid,本发明的改进有,所述s3中寻找对应的xid时,如果有多个http请求对应此本地事务,系统根据http请求内容(url和post body)和sql语句历史对应关系,找到匹配的http请求获取xid。
14.为了防止错误情况发生,本发明的改进有,所述s3中寻找对应的xid时,如果系统仍然无法确定唯一对应的http请求,db proxy返回错误,让本地事务回滚,然后边车http proxy重新发起一个到微服务的http请求。
15.为了分支事务进行处理,本发明的改进有,所述s5中如果全局事务成功,微服务orchestrator提交分支事务,如果全局事务失败,微服务orchestrator回滚分支事务(应用回滚数据)。
16.为了对分支事务进行提交,本发明的改进有,所述s5中orchestrator提交或回滚全局事务后需要db proxy提交或回滚分支事务。
17.与现有技术相比,本发明的优点和积极效果在于,
18.本发明中,通过给微服务添加边车,以实现跨微服务事务编排,边车db proxy以便能根据sql语句产生对应的回滚数据,同时有http proxy和db proxy的边车,以便自动找到数据库本地事务对应的全局事务id,采用上述软件方法,能够在不修改微服务的情况下,让微服务支持跨微服务事务编排,以便达到较好的使用效果。
附图说明
19.图1为本发明提出一种跨微服务事务编排方法的系统结构图;
20.图2为本发明提出一种跨微服务事务编排方法的流程示意图。
具体实施方式
21.为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和实施例对本发明做进一步说明。需要说明的是,在不冲突的情况下,本技术的实施例及实施例中的特征可以相互组合。
22.在本发明的描述中,需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
23.请参阅图1-2,本发明提供一种跨微服务事务编排方法,包括以下步骤:
24.s1:微服务orchestrator开启全局事务,产生xid,并通过边车的http proxy访问微服务;
25.s2:db proxy根据sql语句产生回滚数据;
26.s3:通过db proxy提交本地事务,在db proxy提交本地事务时,需要找到对应xid去注册分支事务;
27.s4:找到xid后,db proxy注册分支事务;
28.s5:orchestrator提交或回滚全局事务。
29.s1中orchestrator到http proxy的http请求,请求带有xid,通过边车的http proxy访问微服务后,微服务通过db proxy执行sql语句,orchestrator提供了用于在环境中构建、测试、调试、部署和管理自动化的工具,这些自动化过程称为runbook,它们可以独立运行或启动其他runbook,在每个orchestrator安装中定义的标准活动提供了各种监视器、任务和runbook控制,利用它们可以集成大量的系统过程,runbook中的每个活动均发布可供该runbook中的任何后续活动使用的数据,可以使用此已发布数据来提供动态决策功能,而http proxy为http代理服务器,是网络信息的中转站,其能够显著提高访问速度和效率,以便后续访问的进行,微服务是一种将单个应用程序作为一套小型服务开发的方法,每种应用程序都在自己的进程中运行,并与轻量级机制(通常是http资源api)进行通信,这些服务是围绕业务功能构建的,可以通过全自动部署机制独立部署,这些服务的集中管理最
少,可以用不同的编程语言编写,并使用不同的数据存储技术,其有着独立部署、灵活扩展、资源的有效隔离、易于团队组织架构的调整等优点。
30.s3中寻找对应的xid时,本地事务的开始时间与结束时间,在http请求的开始时间与结束时间之间,如果有多个http请求对应此本地事务,系统根据http请求内容(url和post body)和sql语句历史对应关系,统一资源定位符(universalresource locator,url),又叫做网页地址,是互联网上标准的资源的地址(address),互联网上的每个文件都有一个唯一的url,它包含的信息指出文件的位置以及浏览器应该怎么处理它,结构化查询语言(structured query language)简称sql,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,然后找到匹配的http请求获取xid,如果系统仍然无法确定唯一对应的http请求,db proxy返回错误,让本地事务回滚,然后边车http proxy重新发起一个到微服务的http请求,使寻找xid的过程能够更加精准,同时防止错误发生,以便事务处理的进行。
31.s5中如果全局事务成功,微服务orchestrator提交分支事务,如果全局事务失败,微服务orchestrator回滚分支事务(应用回滚数据),orchestrator提交或回滚全局事务后需要db proxy提交或回滚分支事务,从而方便后续对分支事务进行处理,以便整个跨微服务事务编排的进行。
32.本发明,通过给微服务添加边车,以实现跨微服务事务编排,边车db proxy以便能根据sql语句产生对应的回滚数据,同时有http proxy和db proxy的边车,以便自动找到数据库本地事务对应的全局事务id,采用上述软件方法,能够在不修改微服务的情况下,让微服务支持跨微服务事务编排,以便达到较好的使用效果。
33.以上,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其它领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献