[发明专利]一种保持数据一致性的方法和装置有效
申请号: | 202010047460.5 | 申请日: | 2020-01-16 |
公开(公告)号: | CN111277639B | 公开(公告)日: | 2022-08-09 |
发明(设计)人: | 曹经彪 | 申请(专利权)人: | 中国建设银行股份有限公司;建信金融科技有限责任公司 |
主分类号: | H04L67/02 | 分类号: | H04L67/02;H04L67/1097;H04L67/60 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 王安娜;陈继越 |
地址: | 100033 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 保持 数据一致性 方法 装置 | ||
本发明公开了一种保持数据一致性的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:拦截业务请求,并查询业务请求调用的服务组合;在调用原子服务时,将业务请求对应的原子服务按调用顺序记录于服务流水表;当任一原子服务调用异常或调用失败时,基于服务流水表生成并按反向调用顺序发送冲正报文,以对原子服务进行冲正。该实施方式能够满足日趋复杂的组合服务的一致性处理,使用上不存在现有技术的局限性,以及性能稳定且处理效率较高。
技术领域
本发明涉及计算机技术领域,尤其涉及一种保持数据一致性的方法和装置。
背景技术
对于组合多个系统服务的业务流程,由于整个业务流程中出现了多个服务的相互调用,涉及多个系统的事务处理,必须保证事务的一致性,必须确保全部成功或者全部失败,而不允许出现部分成功部分失败的情况。当组合服务不一致场景发生后,需要第一时间通过系统自动的方法纠正不一致信息,保证组合服务前后一致。
可能导致组合服务不一致性的情况包括:网络故障导致后端服务系统超时,前端系统无法收到响应信息;后端系统故障,导致前端系统无法收到响应信息;以及后端系统报错等等。
现有的针对分布式组合服务的一致性处理,主要是采用两阶段或三阶段提交等处理方式,但是这些处理方式存在一定局限性,并不适合目前日趋复杂的组合服务的处理,特别是各种微服务架构的分布式处理。
发明内容
有鉴于此,本发明实施例提供一种保持数据一致性的方法和装置,能够满足日趋复杂的组合服务的一致性处理,使用上不存在现有技术的局限性,以及性能稳定且处理效率较高。
为实现上述目的,根据本发明实施例的一个方面,提供了一种保持数据一致性的方法。
本发明实施例的一种保持数据一致性的方法包括:
拦截业务请求,并查询所述业务请求调用的服务组合;其中,所述服务组合包括按调用顺序排列的用于处理所述业务请求的原子服务;
在调用所述原子服务时,将所述业务请求对应的原子服务按调用顺序记录于服务流水表;
当任一所述原子服务调用异常或调用失败时,基于所述服务流水表生成并按所述反向调用顺序发送冲正报文,以对所述原子服务进行冲正。
可选地,在调用所述原子服务时,将所述业务请求对应的原子服务按调用顺序记录于服务流水表,包括:
拦截所述原子服务;
对所述原子服务进行服务流水处理,得到所述原子服务的服务数据;其中,所述服务数据包括所述业务请求及其对应的用户、服务时间、交易金额、业务流水号和服务状态;
若所述原子服务为预设服务,则将所述服务数据记录于服务流水表;其中,所述服务流水表记录有所述原子服务及其对应的服务码和所述服务数据。
可选地,当任一所述原子服务调用异常或调用失败时,将所述业务请求对应的原子服务和冲正信息按服务调用顺序记录于服务流水表,包括:
在所述服务流水表中查询所述业务请求调用的所有原子服务,以及基于所述服务状态确定各个原子服务的服务状态;
当任一所述原子服务的服务状态为调用异常或调用失败时,判断所述业务请求是否要求业务一致性;
当要求业务一致性时,基于所述服务流水表生成并按所述反向调用顺序发送冲正报文,以对所述原子服务进行冲正。
可选地,基于所述服务流水表生成并按所述反向调用顺序发送冲正报文,以对所述原子服务进行冲正,包括:
从所述合服务处理内存对象中获取所述原子服务的业务流水号;
根据所述业务流水号从所述服务流水表获取所述原子服务的服务码和服务数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国建设银行股份有限公司;建信金融科技有限责任公司,未经中国建设银行股份有限公司;建信金融科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010047460.5/2.html,转载请声明来源钻瓜专利网。