[发明专利]多事务系统的数据一致性方法及装置有效
申请号: | 202011264382.0 | 申请日: | 2020-11-12 |
公开(公告)号: | CN112346827B | 公开(公告)日: | 2023-05-02 |
发明(设计)人: | 王泰舟 | 申请(专利权)人: | 食亨(上海)科技服务有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F16/23;G06F16/2457 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 陆嘉 |
地址: | 200434 上海市虹口区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多事 系统 数据一致性 方法 装置 | ||
本发明提出一种多事务系统的数据一致性方法,对于同步模式,各个事务模块依次执行完本地事务,调用下一个事务模块,并将本地事务执行后的数据上报给一致性平台,一致性平台更新对应的全局事务的数据,任意一个事务模块执行本地事务失败,则通知一致性平台撤销对应的全局事务并且通知该全局事务的前序各个事务模块同步撤销对应的本地事务。对于异步模式,事务模块发送确认消息给一致性平台并执行本地事务,一致性平台向消息队列发送消息,一致性平台监测消息队列的状态,如果消息队列故障,则调整消息队列或者重试发送消息。本发明还提出一种多事务系统的数据一致性装置,适用于同步模式或者异步模式。
技术领域
本发明涉及软件技术领域,更具体地说,涉及以微服务方式部署的SaaS技术领域。
背景技术
软件即服务(Software as a Service,SaaS)正在成为软件业新的发展方向,尤其在移动端应用中,SaaS得到了广泛的应用。在线上本地生活服务中,SaaS正在成为主流配置。比如在外卖业务场景中,多会用到以微服务方式部署的SaaS。对于诸如外卖业务的本地生活场景而言,一次业务流程会涉及多个事务,比如下单、锁定库存、锁定优惠券、生成订单、呼叫配送、发起支付、打印单据等。这些事务是由独立的事务模块分别完成,各个事务模块按照一定的业务逻辑同时或者依次工作,执行相应的事务,并且在不同的事务模块之间交换数据,共同配合完成整个流程。
在这个过程中,数据一致性显得尤为重要,但一个业务流程发起后,各个事务必须保持数据一致性,比如下单、库存、优惠券、订单、配送、支付和打印单据的数据必须是一致的。如果其中有一个环节出现事务执行失败而有没有及时进行数据同步,会导致数据不一致,这是就会引发数据混乱,导致漏单、库存错误、订单错误、无法支付、异常扣款、单据错误等问题,引起使用方不满。
从事务处理类型的角度分析,现有技术中对于数据一致性的处理的问题包括:
同步模式的一致性问题:比如外卖点餐下订单流程,需要库存服务锁定库存,营销服务锁定优惠券,订单服务生成订单,支付服务发起支付等。一系列流程需要保证一致性,如果中间一环失败,则会导致数据不一致,从而难以形成闭环,属于同步模式的一致性问题。
异步模式的一致性问题:在订单服务完成一笔订单后,需要通过消息队列的方式推送给打印机服务。如果中间失败,则会导致订单付款成功,但是无法推送到打印机的情况,也难以形成闭环。属于异步模式的一致性问题。
总而而言,现有技术中对于SaaS在微服务部署环境下事务数据一致性的问题,通常存在以下几点:
1)存在同步模式、异步模式的一致性事务,但是零散在各个组件内,没有统一的管理平台来管理。
2)异步模式依赖消息队列,但当消息队列整体宕机后,便无法继续执行。缺乏对消息队列宕机的容灾方案。
3)事务的执行属于黑盒,相关技术人员难以对事务执行情况进行感知,没有对全局的事务进行统计和监控,从而快速报警。
发明内容
本发明提出一种解决微服务部署下SaaS中的数据一致性问题的方案。
根据本发明的一实施例,提出一种多事务系统的数据一致性方法,用于在多个事务模块之间以同步模式实现数据一致性,包括:
第一个事务模块发起流程,在一致性平台上创建一个对应的全局事务,并执行本地事务;
第一个事务模块执行完本地事务,调用下一个事务模块,并将本地事务执行后的数据上报给一致性平台,一致性平台更新对应的全局事务的数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于食亨(上海)科技服务有限公司,未经食亨(上海)科技服务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011264382.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于离心机开关盖的双齿轮自动锁扣机构
- 下一篇:一种服务机器人机械臂