[发明专利]一种处理业务请求的方法和装置在审
申请号: | 202011302418.X | 申请日: | 2020-11-19 |
公开(公告)号: | CN112417042A | 公开(公告)日: | 2021-02-26 |
发明(设计)人: | 韦珺瀚;林润杰;李晟林 | 申请(专利权)人: | 中国建设银行股份有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;王安娜 |
地址: | 100033 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 处理 业务 请求 方法 装置 | ||
本发明公开了一种处理业务请求的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收各个服务上传的事务完成状态,其中,所述事务完成状态包括成功和失败;若所述各个服务中存在事务完成状态为失败的服务,则从所述各个服务中检索出事务完成状态为成功的服务;为所述事务完成状态为成功的服务构造冲正任务,调用所述事务完成状态为成功的服务,以使所述事务完成状态为成功的服务执行冲正方法。该实施方式能够解决无法保证事务一致性的技术问题。
技术领域
本发明涉及计算机技术领域,尤其涉及一种处理业务请求的方法和装置。
背景技术
在将原有的业务微服务化拆分之后,处理一个业务请求(比如一笔交易)经常要访问多个微服务,而由于网络不稳定等各种原因,可能出现某个服务异常,若不加控制,很容易由于处理未完成或者重复提交数据等原因导致数据不一致,经常需要运维人员手动更正,导致运维成本较高且效率较低。
对于跨系统之间数据一致性的维护,若是交由开发人员在开发业务接口时主动维护,由于开发人员的习惯和理解程度不同,容易产生各种维护一致性的方式并存,导致维护成本大大提高。
目前,对于分布式微服务的事务一致性问题,常见的方法有通过将业务处理链上的多个应用事务串联成一个长事务,利用数据库的事务控制进行多阶段提交以及设置补偿事务的模式。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
所有参与节点(即参与者)都是事务阻塞型的,协调者需要给每个参与者额外指定超时机制,超时后整个事务失败。如果协调者在发出提交消息之后宕机,而唯一接收到这条消息的参与者同时也宕机了,那么即使协调者通过选举协议产生了新的协调者,这条事务的状态也是不确定的,无法知道事务是否被已经提交,因此无法保证事务一致性。
发明内容
有鉴于此,本发明实施例提供一种处理业务请求的方法和装置,以解决无法保证事务一致性的技术问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种处理业务请求的方法,包括:
接收各个服务上传的事务完成状态,其中,所述事务完成状态包括成功和失败;
若所述各个服务中存在事务完成状态为失败的服务,则从所述各个服务中检索出事务完成状态为成功的服务;
为所述事务完成状态为成功的服务构造冲正任务,调用所述事务完成状态为成功的服务,以使所述事务完成状态为成功的服务执行冲正方法。
可选地,调用所述事务完成状态为成功的服务,以使所述事务完成状态为成功的服务执行冲正方法,包括:
按照接收到所述事务完成状态为成功的服务的事务完成状态的先后顺序,逆序地依次调用所述事务完成状态为成功的服务,以使所述事务完成状态为成功的服务依次执行冲正方法。
可选地,所述各个服务通过拦截请求数据和事务完成状态,并将所述请求数据存储到缓存。
可选地,所述请求数据包括所述服务从接收到的业务请求中解析出的全局流水号和业务数据。
可选地,在所述各个服务中,定义接收业务请求的控制层的基类,并在所述基类中定义正向的业务处理方法和反向的冲正方法。
可选地,为所述事务完成状态为成功的服务构造冲正任务,包括:
从缓存中获取所述事务完成状态为成功的服务对应的请求数据;
根据所述事务完成状态为成功的服务对应的请求数据,为所述事务完成状态为成功的服务构造冲正任务。
可选地,为所述事务完成状态为成功的服务构造冲正任务,调用所述事务完成状态为成功的服务,以使所述事务完成状态为成功的服务执行冲正方法,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国建设银行股份有限公司,未经中国建设银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011302418.X/2.html,转载请声明来源钻瓜专利网。