[发明专利]微服务架构HTTP交互模式下保证数据一致性的方法在审
申请号: | 201711201403.2 | 申请日: | 2017-11-27 |
公开(公告)号: | CN108038141A | 公开(公告)日: | 2018-05-15 |
发明(设计)人: | 莫展鹏;季统凯 | 申请(专利权)人: | 国云科技股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京科亿知识产权代理事务所(普通合伙) 11350 | 代理人: | 汤东凤 |
地址: | 523808 广东省东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 微服 架构 http 交互 模式 保证 数据一致性 方法 | ||
本发明涉及微服务开发技术领域,特别是指一种微服务架构HTTP交互模式下保证数据一致性的方法。本发明首先主业务服务分别调用所有从业务服务的预操作,然后在活动管理器中记录所有从业务服务;如果所有从业务服务预操作成功或者某个从业务服务预操作失败,那么继续事务,否则执行事务停止执行;如果所有从业务服务都预操作成功,则协作者调用所有从业务服务的确认操作,如果确认操作失败,那么回滚所有确认操作,并执行从服务业务的取消操作。最后如果有部分从业务服务预操作失败,那么调用所有从业务服务的取消操作,直到取消成功为止。本发明解决了传统二阶段提交协议性能较差、不适用于微服务架构的问题;可实现业务服务上的三个简单语义的操作并进行调用。
技术领域
本发明涉及微服务开发技术领域,特别是指一种微服务架构HTTP交互模式下保证数据一致性的方法。
背景技术
随着微服务架构的推广,越来越多的企业采用微服务架构来构建自己的业务平台。微服务架构为业务开发带来了诸多好处的同时,例如单一职责、独立开发部署、功能复用和系统容错等等;也带来一些问题,例如开发门槛较高,运维更复杂,模块之间的依赖关系更复杂,从而导致数据一致性难以保证。目前微服务架构下一般采用二阶段提交协议的方式来保证数据的强一致性,二阶段提交协议是一个分布式事务模型,此模型主要使用二阶段提交来保证分布式事务的完整性。在这个模型里面,有三个角色:
1、AP:Application,应用程序,业务层。
2、RM:Resource Manager,资源管理器,关系型数据库或支持XA接口的组件。
3、TM:Transaction Manager,事务管理器,负责各个RM的提交和回滚。
二段提交协议分为两个阶段:
1、TM通知所有参与事务的各个RM,给每个RM发送prepare消息。RM接收到消息后进入准备阶段后,要么直接返回失败,要么创建并执行本地事务,写本地事务日志(redo和undo日志),但是不提交;
2、TM收到RM准备阶段的失败消息或者获取RM返回消息超时,则直接给RM发送回滚(rollback)消息,否则发送提交(commit)消息。RM根据TM的指令执行提交或者回滚,执行完成后释放所有事务处理过程中使用的锁。
上述方法实现了数据的强一致性,但是存在以下弊端:
1、TM通过XA接口与各个RM之间进行数据交互,从第1阶段开始,业务所涉及的数据就被锁定,并且锁定跨越整个提交流程。在高并发和涉及业务模块较多的情况下对数据库的性能影响较大;
2、微服务架构大多是使用HTTP协议进行组件之间的通信的,HTTP对于XA协议这种语义较为复杂的协议比较难以实现,因此,上述方法在微服务开发领域基本不适用。
因此,需要设计一种适用于微服务架构HTTP交互模式的高性能的保证数据一致性的方法。
发明内容
本发明解决的技术问题在于提出一种微服务架构HTTP交互模式下保证数据一致性的方法。
本发明解决上述技术问题的技术方案是:
所述的方法包括以下步骤:
步骤1:主业务服务调用所有从业务服务的预操作;
步骤2:在活动管理器中记录所有从业务服务;
步骤3:如果所有从业务服务预操作成功或者某个从业务服务预操作失败,那么执行步骤4,否则执行事务停止执行;
步骤4:如果所有从业务服务都预操作成功,则协作者调用所有从业务服务的确认操作,如果确认操作失败,那么回滚所有确认操作,并执行从服务业务的取消操作;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国云科技股份有限公司,未经国云科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711201403.2/2.html,转载请声明来源钻瓜专利网。