一种数据更新方法及装置制造方法及图纸

技术编号:38034014 阅读:11 留言:0更新日期:2023-06-30 11:00
本申请提供了一种数据更新方法及装置,其中,所述方法包括:响应于数据库的增量更新,获取待更新数据;根据所述待更新数据获取所述待更新数据的数据标识;根据所述待更新数据的数据标识判断所述待更新数据是否存在于预先设置的数据延迟队列之中,若是,将所述待更新数据滤除;若否,则将所述待更新数据加入所述数据延迟队列,并按照预设周期对所述数据延时队列中的数据进行更新。由此可见,本申请实施例通过延迟队列实现数据去重,减少相同数据的更新,提高数据更新的效率,减少服务器压力,保证系统的稳定性。系统的稳定性。系统的稳定性。

【技术实现步骤摘要】
一种数据更新方法及装置


[0001]本申请涉及数据处理
,尤其涉及一种数据更新方法及装置。

技术介绍

[0002]监听MySQL数据库的Binlog日志数据发现,同一条数据会在短时间内更新多次,如在一段时间内对同一条数据进行多次编辑,可能会造成很多无效的数据同步,增加了数据更新压力与数据更新的时效性,在数据高迸发情况下,Binlog日志数据可能出现堆积,进而造成数据消费队列阻塞,影响系统的数据处理效率以及稳定性。
[0003]现有的数据更新方法一般采用消息订阅与Redis分布式锁去重模式实现数据去重,然而,当大量消息都采用Redis分布式锁处理,显然增加Redis的负载,影响系统性能。因此,现在亟需一种数据更新方法,能够在保证系统稳定的前提下,提高数据更新的效率。

技术实现思路

[0004]有鉴于此,本申请提供了一种数据更新方法及装置,能够在保证系统稳定的前提下,提高数据更新的效率。
[0005]其技术方案如下:
[0006]第一方面,本申请实施例提供了一种数据更新方法,所述方法包括:
[0007]响应于数据库的增量更新,获取待更新数据;
[0008]根据所述待更新数据获取所述待更新数据的数据标识;
[0009]根据所述待更新数据的数据标识判断所述待更新数据是否存在于预先设置的数据延迟队列之中,若是,将所述待更新数据滤除;
[0010]若否,则将所述待更新数据加入所述数据延迟队列,并按照预设周期对所述数据延时队列中的数据进行更新。
[0011]可选的,所述响应于数据库的增量更新,获取待更新数据,包括:
[0012]响应于数据库的增量更新,通过Canal组件获取数据库的Binary log日志信息,并将所述日志信息发送至Kafak消息队列中;
[0013]监听所述Kafak消息队列,以获得所述待更新数据。
[0014]可选的,所述根据所述待更新数据获取所述待更新数据的数据标识,包括:
[0015]根据所述待更新消息的主键ID以及表名信息生成所述待更新数据的数据标识,所述数据标识用于唯一标识所述待更新数据。
[0016]可选的,在所述将所述待更新数据加入所述数据延迟队列之后,还包括:
[0017]将所述待更新数据放置于预设的Redis监控列表中;
[0018]当所述待更新数据进行更新后,将所述待更新数据移除所述Redis监控列表中;
[0019]通过定时任务管理工具读取所述Redis监控列表,获取在第一预设时长内未被更新的遗漏待更新数据时,将所述遗漏待更新数据加入即时更新队列中以对所述遗漏待更新数据进行更新。
[0020]可选的,所述方法还包括:
[0021]获取应用服务器端发送的优先待更新数据,将所述优先待更新数据加入即时更新队列,对所述优先待更新数据进行更新。
[0022]可选的,所述方法还包括:
[0023]若所述待更新数据存在关联待更新数据时,获取所述关联待更新数据;
[0024]根据所述关联待更新数据获取所述关联待更新数据的数据标识;
[0025]根据所述关联待更新数据的数据标识判断所述关联待更新数据是否存在于预先设置的数据延迟队列之中,若是,将所述关联待更新数据滤除;
[0026]若否,则将所述关联待更新数据加入所述数据延迟队列,并按照预设周期对所述数据延时队列中的数据进行更新。
[0027]可选的,所述方法还包括:
[0028]在所述数据延迟队列存在待更新数据未被更新时,响应于接收到关机指令或重启指令后,等待所述数据延迟队列的数据更新完成后,执行关机动作或重启动作;
[0029]在等待所述第二等待时长后,所述数据延迟队列的数据仍未更新完成,强制执行所述关机动作或重启动作。
[0030]第二方面,本申请实施例提供了一种数据更新装置,所述装置包括:
[0031]获取模块,用于响应于数据库的增量更新,获取待更新数据;
[0032]所述获取模块,还用于根据所述待更新数据获取所述待更新数据的数据标识;
[0033]判断模块,用于根据所述待更新数据的数据标识判断所述待更新数据是否存在于预先设置的数据延迟队列之中;
[0034]滤除模块,用于在所述判断模块判断所述待更新数据存在于预先设置的数据延迟队列之中,将所述待更新数据滤除;
[0035]更新模块,用于在所述判断模块判断所述待更新数据不存在于预先设置的数据延迟队列之中,将所述待更新数据加入所述数据延迟队列,并按照预设周期对所述数据延时队列中的数据进行更新。
[0036]可选的,所述装置还包括:
[0037]监控模块,用于在所述更新模块将所述待更新数据加入所述数据延迟队列之后,将所述待更新数据放置于预设的Redis监控列表中;
[0038]移除模块,用于当所述待更新数据进行更新后,将所述待更新数据移除所述Redis监控列表中;
[0039]所述更新模块,还用于通过定时任务管理工具读取所述Redis监控列表,获取在第一预设时长内未被更新的遗漏待更新数据时,将所述遗漏待更新数据加入即时更新队列中以对所述遗漏待更新数据进行更新。
[0040]可选的,所述获取模块,还用于在所述待更新数据存在关联待更新数据时,获取所述关联待更新数据;根据所述关联待更新数据获取所述关联待更新数据的数据标识;
[0041]所述判断模块,还用于根据所述关联待更新数据的数据标识判断所述关联待更新数据是否存在于预先设置的数据延迟队列之中;
[0042]所述滤除模块,还用于在所述判断模块判断所述关联待更新数据存在于预先设置的数据延迟队列之中,将所述关联待更新数据滤除;
[0043]所述更新模块,还用于在所述判断模块判断所述关联待更新数据不存在于预先设置的数据延迟队列之中,将所述关联待更新数据加入所述数据延迟队列,并按照预设周期对所述数据延时队列中的数据进行更新。
[0044]上述技术方案具有如下有益效果:
[0045]本申请实施例提供的一种数据更新方法,在执行所述方法时,响应于数据库的增量更新,获取待更新数据;根据所述待更新数据获取所述待更新数据的数据标识;根据所述待更新数据的数据标识判断所述待更新数据是否存在于预先设置的数据延迟队列之中,若是,将所述待更新数据滤除;若否,则将所述待更新数据加入所述数据延迟队列,并按照预设周期对所述数据延时队列中的数据进行更新。由此可见,本申请实施例通过延迟队列实现数据去重,减少相同数据的更新,提高数据更新的效率,减少服务器压力,保证系统的稳定性。
[0046]本申请实施例还提供了与上述方法相对应的装置,具有与上述方法相同的有益效果。
附图说明
[0047]为更清楚地说明本实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据更新方法,其特征在于,所述方法包括:响应于数据库的增量更新,获取待更新数据;根据所述待更新数据获取所述待更新数据的数据标识;根据所述待更新数据的数据标识判断所述待更新数据是否存在于预先设置的数据延迟队列之中,若是,将所述待更新数据滤除;若否,则将所述待更新数据加入所述数据延迟队列,并按照预设周期对所述数据延时队列中的数据进行更新。2.根据权利要求1所述的方法,其特征在于,所述响应于数据库的增量更新,获取待更新数据,包括:响应于数据库的增量更新,通过Canal组件获取数据库的Binary log日志信息,并将所述日志信息发送至Kafak消息队列中;监听所述Kafak消息队列,以获得所述待更新数据。3.根据权利要求1所述的方法,其特征在于,所述根据所述待更新数据获取所述待更新数据的数据标识,包括:根据所述待更新消息的主键ID以及表名信息生成所述待更新数据的数据标识,所述数据标识用于唯一标识所述待更新数据。4.根据权利要求1所述的方法,其特征在于,在所述将所述待更新数据加入所述数据延迟队列之后,还包括:将所述待更新数据放置于预设的Redis监控列表中;当所述待更新数据进行更新后,将所述待更新数据移除所述Redis监控列表中;通过定时任务管理工具读取所述Redis监控列表,获取在第一预设时长内未被更新的遗漏待更新数据时,将所述遗漏待更新数据加入即时更新队列中以对所述遗漏待更新数据进行更新。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取应用服务器端发送的优先待更新数据,将所述优先待更新数据加入即时更新队列,对所述优先待更新数据进行更新。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述待更新数据存在关联待更新数据时,获取所述关联待更新数据;根据所述关联待更新数据获取所述关联待更新数据的数据标识;根据所述关联待更新数据的数据标识判断所述关联待更新数据是否存在于预先设置的数据延迟队列之中,若是,将所述关联待更新数据滤除;若否,则将所述关联待更新数据加入所述数据延迟队列,并按照预设周期对所述数据延时队列中的数据进行更新。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述...

【专利技术属性】
技术研发人员:汪纬肖中渠周红丽李东彭斌斌
申请(专利权)人:湖南快乐阳光互动娱乐传媒有限公司
类型:发明
国别省市:

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

1