一种利用数据服务中心来保证数据一致性的方法及其系统技术方案

技术编号:28213976 阅读:12 留言:0更新日期:2021-04-24 14:54
本发明专利技术提供了一种利用数据服务中心来保证数据一致性的方法,该方法为:步骤S1、设置主数据库和从数据库进行数据同步的最大延迟时间,并将最大延迟时间存入redis缓存;步骤S2、写请求访问数据服务中心,访问主数据库修改数据,存储修改时间至redis缓存;步骤S3、获取redis缓存中国最大延迟时间,并将最大延迟时间*2作为数据不一致的时间窗口;步骤S4、读请求访问数据服务中心,根据修改时间判断数据是否在时间窗口期内被修改,是,则访问主数据库读取数据;否,则访问从数据库读取数据;以此来维持数据一致性。维持数据一致性。维持数据一致性。

【技术实现步骤摘要】
一种利用数据服务中心来保证数据一致性的方法及其系统


[0001]本专利技术涉及计算机通讯
,特别是一种利用数据服务中心来保证数据一致性的方法及其系统。

技术介绍

[0002]Mysql数据库为了提供更高的性能,可以做读写分离,一台数据库做写库,一台数据库做从库,Mysql通过主数据库和从数据库同步来维持数据一致。但是数据同步是有延迟的,根据数据量和数据结构的不同可能有长有短,可能50毫秒,也可能500毫秒。那分布式系统在高并发的场景下,在这几百毫秒的窗口期间就可能存在数据不一致的情况。现有维持数据强一致性的手段有Mysql配置的全同步复制、使用分布式事务等等,但是这些方案都会降低接口的响应时间,降低系统的吞吐量,以此来提供完全的强一致性。但互联网高并发的业务场景,更多的是使用最终一致性来维持多数据副本的一致性问题。

技术实现思路

[0003]为克服上述问题,本专利技术的目的是提供一种利用数据服务中心来保证数据一致性的方法,无需降低接口的响应时间,能保持数据最终一致性。
[0004]本专利技术采用以下方案实现:一种利用数据服务中心来保证数据一致性的方法,所述方法包括如下步骤:步骤S1、设置主数据库和从数据库进行数据同步的最大延迟时间,并将最大延迟时间存入redis缓存;步骤S2、写请求访问数据服务中心,访问主数据库修改数据,存储修改时间至redis缓存;步骤S3、获取redis缓存中国最大延迟时间,并将最大延迟时间*2作为数据不一致的时间窗口;步骤S4、读请求访问数据服务中心,根据修改时间判断数据是否在时间窗口期内被修改,是,则访问主数据库读取数据;否,则访问从数据库读取数据;以此来维持数据一致性。
[0005]进一步的,所述步骤S1进一步具体为:设置一定时任务,该定时任务为选取主数据库和从数据库中一张表,目的是为了预估主数据库和从数据库进行数据同步的延迟上限,设置一预设时间对比一次延迟,从多次对比中存储最大的延迟上限作为最大延迟时间存入redis缓存。
[0006]进一步的,所述步骤S2进一步具体为:数据服务中心接收到增加、删除、修改请求,增加、删除、修改都是更改数据的写请求,写请求一律链接主数据库进行操作;访问主数据库修改数据,保存被更改的表名到redis缓存中,同时存储修改时间至redis缓存;进一步的,所述步骤S4进一步具体为:读请求访问数据服务中心,数据服务中心收到查询修改表的请求后;根据查询语句获得修改表的数据,判断修改时间是否小于时间窗
口,是,则表明数据在不一致的时间窗口内更改过数据,则访问主数据库读取数据;否,则访问从数据库读取数据;以此来维持数据一致性。
[0007]本专利技术还提供了一种利用数据服务中心来保证数据一致性的系统,所述系统包括设置延迟时间模块、写请求操作模块、时间窗口设置模块、以及读请求操作模块;所述设置延迟时间模块,用于设置主数据库和从数据库进行数据同步的最大延迟时间,并将最大延迟时间存入redis缓存;所述写请求操作模块,用于写请求访问数据服务中心,访问主数据库修改数据,存储修改时间至redis缓存;所述时间窗口设置模块,用于获取redis缓存中国最大延迟时间,并将最大延迟时间*2作为数据不一致的时间窗口;所述读请求操作模块,用于读请求访问数据服务中心,根据修改时间判断数据是否在时间窗口期内被修改,是,则访问主数据库读取数据;否,则访问从数据库读取数据;以此来维持数据一致性。
[0008]进一步的,所述设置延迟时间模块的实现方式进一步具体为:设置一定时任务,该定时任务为选取主数据库和从数据库中一张表,目的是为了预估主数据库和从数据库进行数据同步的延迟上限,设置一预设时间对比一次延迟,从多次对比中存储最大的延迟上限作为最大延迟时间存入redis缓存。
[0009]进一步的,所述写请求操作模块的实现方式进一步具体为:数据服务中心接收到增加、删除、修改请求,增加、删除、修改都是更改数据的写请求,写请求一律链接主数据库进行操作;访问主数据库修改数据,保存被更改的表名到redis缓存中,同时存储修改时间至redis缓存;进一步的,所述读请求操作模块的实现方式进一步具体为:读请求访问数据服务中心,数据服务中心收到查询修改表的请求后;根据查询语句获得修改表的数据,判断修改时间是否小于时间窗口,是,则表明数据在不一致的时间窗口内更改过数据,则访问主数据库读取数据;否,则访问从数据库读取数据;以此来维持数据一致性。
[0010]本专利技术的有益效果在于:本专利技术能够在数据库设置主从同步的情况下,利用数据服务中心来处理和路由读写请求,根据业务修改时间和预估的同步延时最大延时的比对,来判断读业务是否可能在数据不一致性的时间窗口期内,以此来决定读主数据库还是读从数据库,以此来维持数据一致性;无需降低接口的响应时间。
附图说明
[0011]图1是本专利技术的方法流程示意图。
[0012]图2是本专利技术一实施例的方法流程示意图。
[0013]图3是本专利技术一实施例的数据服务中心的构架示意图。
[0014]图4是本专利技术的系统原理框图。
具体实施方式
[0015]下面结合附图对本专利技术做进一步说明。
[0016]请参阅图1所示,本专利技术的一种利用数据服务中心来保证数据一致性的方法,所述
方法包括如下步骤:步骤S1、设置主数据库和从数据库进行数据同步的最大延迟时间,并将最大延迟时间存入redis缓存;步骤S2、写请求访问数据服务中心,访问主数据库修改数据,存储修改时间至redis缓存;步骤S3、获取redis缓存中国最大延迟时间,并将最大延迟时间*2作为数据不一致的时间窗口;步骤S4、读请求访问数据服务中心,根据修改时间判断数据是否在时间窗口期内被修改,是,则访问主数据库读取数据;否,则访问从数据库读取数据;以此来维持数据一致性。
[0017]下面结合一具体实施例对本专利技术做进一步说明:如图2和图3所示,一种利用数据服务中心来保证数据一致性的方法,步骤1:预估主数据库和从数据库同步延迟设置一个定时任务,该定时任务为选取库中业务较为复杂的一张表为目标,目的是为了预估主数据库和从数据库同步的延迟上限,每30分钟对比一次延迟,存储延迟上限,例如4次依次比对的延迟是200毫秒、105毫秒、300毫秒、220毫秒,那只存储最大延迟上限300毫秒至Redis缓存。
[0018]步骤2:写请求访问数据服务中心,访问主数据库修改数据,存储修改时间至redis缓存;数据服务中心接收到增删改请求,增删改都是更改数据的写请求,写请求一律链接主数据库操作。例如接收到的是一个新增评论表的请求INSERT INTO `comment_tb` (`goods_id`, `user_id`, `content`, `create_time`) VALUES ('1009', '889880', '收到货很满意', '2020

10

15 10:57:01')。
[0019]步骤2.1:保存被更改本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种利用数据服务中心来保证数据一致性的方法,其特征在于:所述方法包括如下步骤:步骤S1、设置主数据库和从数据库进行数据同步的最大延迟时间,并将最大延迟时间存入redis缓存;步骤S2、写请求访问数据服务中心,访问主数据库修改数据,存储修改时间至redis缓存;步骤S3、获取redis缓存中国最大延迟时间,并将最大延迟时间*2作为数据不一致的时间窗口;步骤S4、读请求访问数据服务中心,根据修改时间判断数据是否在时间窗口期内被修改,是,则访问主数据库读取数据;否,则访问从数据库读取数据;以此来维持数据一致性。2.根据权利要求1所述的一种利用数据服务中心来保证数据一致性的方法,其特征在于:所述步骤S1进一步具体为:设置一定时任务,该定时任务为选取主数据库和从数据库中一张表,目的是为了预估主数据库和从数据库进行数据同步的延迟上限,设置一预设时间对比一次延迟,从多次对比中存储最大的延迟上限作为最大延迟时间存入redis缓存。3.根据权利要求1所述的一种利用数据服务中心来保证数据一致性的方法,其特征在于:所述步骤S2进一步具体为:数据服务中心接收到增加、删除、修改请求,增加、删除、修改都是更改数据的写请求,写请求一律链接主数据库进行操作;访问主数据库修改数据,保存被更改的表名到redis缓存中,同时存储修改时间至redis缓存。4.根据权利要求1所述的一种利用数据服务中心来保证数据一致性的方法,其特征在于:所述步骤S4进一步具体为:读请求访问数据服务中心,数据服务中心收到查询修改表的请求后;根据查询语句获得修改表的数据,判断修改时间是否小于时间窗口,是,则表明数据在不一致的时间窗口内更改过数据,则访问主数据库读取数据;否,则访问从数据库读取数据;以此来维持数据一致性。5.一种利用数据服务中心来保证数据一致性的系统,其特征在于:所述系统包括设置延迟时间模块、写请求操作...

【专利技术属性】
技术研发人员:刘德建叶伟陈宏展
申请(专利权)人:福建天晴在线互动科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1