[发明专利]数据一致性的实现方法、装置、设备及计算机存储介质在审
申请号: | 202010303936.7 | 申请日: | 2020-04-16 |
公开(公告)号: | CN111488367A | 公开(公告)日: | 2020-08-04 |
发明(设计)人: | 刘建波 | 申请(专利权)人: | 深圳前海微众银行股份有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/25;G06F16/27;G06F9/46;G06F9/448;G06F11/14 |
代理公司: | 深圳市世纪恒程知识产权代理事务所 44287 | 代理人: | 许峰 |
地址: | 518000 广东省深圳市前海深港合作区前*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据一致性 实现 方法 装置 设备 计算机 存储 介质 | ||
本发明涉及金融科技技术领域,公开了一种数据一致性的实现方法、装置、设备及计算机存储介质。该方法包括:在接收到事务开启指令时,调用预设API生成事物上下文;在接收到数据写入命令时,调用预设API生成对应的正向事务元素和反向事务元素,并缓存至事务上下文中;在接收到事务提交指令时,将事务上下文中缓存的正向事务元素封装为Redis事务,并向主节点提交执行Redis事务;在执行完成时,调用预设WAIT命令,以确定Redis事务对应的写入数据是否成功同步至备节点上;若同步失败,则基于事务上下文中缓存的反向事务元素进行事务回滚。本发明能够在出现信息孤岛的情况时,保证Redis集群中数据的一致性。
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及一种数据一致性的实现方法、装置、设备及计算机存储介质。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。
互联网银行的各种交易系统,都面临着大量的用户请求要处理。为了提升处理效率,通常会使用分布式的缓存技术来缓存产品、参数、用户等信息,而Redis(一种内存数据库)就是一种常用的分布式缓存技术。为保证Redis集群的高可用性,通常会采用Master/Slaves(主从式)的高可用集群部署模式,即:将1个Redis实例作为主节点Master,用于支持数据的写入和读取,进而将写入的数据同步到备节点中;将N个Redis实例作为备节点Slaves,当主节点因为软硬件异常而崩溃后,由Sentinels(哨兵,Redis的监控进程)选举1个备节点作为主节点继续服务。
但是,当主节点Master的网络因为某些事件中断时,备节点Slaves所对应的Sentinels会认为Master已经崩溃,进而选举其中一个Slave成为新的Master,并通知给应用实例。于是位于备节点上的应用实例将连接切换到新的Master上,继续读写;但位于旧Master上的应用实例是收不到通知的,于是旧的Master上的应用实例仍然连着旧的Master,继续读写。如此,Redis集群中便有了两个Master,分别由不同的应用实例对两个Master进行读写,集群中便出现了数据不一致的情况。当网络恢复之后,旧的Master回归到集群中,但只能是Slave身份,其所有数据都将会被新的Master数据覆盖,因此在断网后写入其中的数据,将全部丢失,从而出现交易虽然成功了、但是数据却丢失了的情况,因此,在主节点Master成为信息孤岛时,如何避免Redis集群中数据不一致的情况发生,是目前亟需解决的难题。
发明内容
本发明的主要目的在于提供一种数据一致性的实现方法、装置、设备及计算机存储介质,旨在实现在出现信息孤岛的情况时,保证Redis集群中数据的一致性。
为实现上述目的,本发明提供一种数据一致性的实现方法,所述数据一致性的实现方法包括:
在接收到事务开启指令时,调用预设应用程序接口API生成事物上下文;
在接收到数据写入命令时,调用所述预设API生成与所述数据写入命令对应的正向事务元素和反向事务元素,并缓存至所述事务上下文中;
在接收到事务提交指令时,将所述事务上下文中缓存的正向事务元素封装为Redis事务,并向主节点提交执行所述Redis事务;
在执行完成时,调用预设等待WAIT命令,以确定所述Redis事务对应的写入数据是否成功同步至备节点上;
若同步失败,则基于所述事务上下文中缓存的反向事务元素进行事务回滚。
可选地,所述在接收到事务提交指令时,将所述事务上下文中缓存的正向事务元素封装为Redis事务,并向主节点提交执行所述Redis事务的步骤包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳前海微众银行股份有限公司,未经深圳前海微众银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010303936.7/2.html,转载请声明来源钻瓜专利网。