缓存数据同步方法、服务器、应用系统及存储装置制造方法及图纸

技术编号:21199958 阅读:26 留言:0更新日期:2019-05-25 01:16
本发明专利技术公开了一种缓存数据同步方法、服务器、应用系统及存储装置,所述方法包括:中间件服务器获取系统数据库的变更日志,解析变更日志以获取系统数据库的数据变更信息;中间件服务器利用数据变更信息从数据表中获取待同步数据;中间件服务器按照数据表与缓存键之间的映射关系将待同步数据同步至缓存数据库,其中,中间件服务器中存储有数据表与缓存键之间的映射关系表。通过上述方式,本发明专利技术能够保证系统数据库与缓存数据库的数据一致性。

Cache Data Synchronization Method, Server, Application System and Storage Device

The invention discloses a caching data synchronization method, a server, an application system and a storage device. The method includes: the middleware server obtains the change log of the system database, parses the change log to obtain the data change information of the system database; the middleware server obtains the data to be synchronized from the data table by using the data change information; and the middleware server obtains the data according to the data. The mapping relationship between tables and cache keys synchronizes the data to be synchronized to the cache database, where the mapping table between data tables and cache keys is stored in the middleware server. By the above way, the invention can ensure the data consistency between the system database and the cached database.

【技术实现步骤摘要】
缓存数据同步方法、服务器、应用系统及存储装置
本专利技术涉及互联网
,特别是涉及一种缓存数据同步方法、服务器、应用系统及存储装置。
技术介绍
目前随着互联网应用的用户量的增加,尤其是拥有海量用户的互联网应用,对于应用系统的高并发、高可用提出越来越高的要求。为了提升应用系统的性能,减少对系统数据库的直接访问,通常会在应用系统中使用缓存数据库,可以将系统数据库中的数据放入缓存数据库中,在需要获取数据时直接从缓存数据库中获取数据,以提高数据的读取速度。当系统数据库中的数据在缓存数据库中作了缓存时,需要保证缓存数据库中的缓存数据与系统数据库中的源数据的一致性。现有的缓存采用被动更新策略,当用户数据出现变更时,主动删除对应缓存,待用户再次查询时才将数据写入缓存。这种方式下,在系统出现高并发的情况下,数据库将面临较大的压力,容易引起性能瓶颈。另外,现有的系统数据库采用双主方案进行数据备份,数据库之间互为主从进行同步复制。当出现网络抖动时,主从数据库之间存在一定延时。此时如果主库出现宕机需要故障转移,将不能确保主从数据一致性,存在事务丢失风险。数据的一致性较差,且在故障恢复过程中需要人工整理对账结果确认丢失事务,并进行相应的数据补全。
技术实现思路
本专利技术主要解决的技术问题是提供一种缓存数据同步方法、服务器、应用系统及存储装置,能够保证系统数据库与缓存数据库的数据一致性。为解决上述技术问题,本专利技术采用的一个技术方案是:提供一种缓存数据同步方法,所述方法包括:中间件服务器获取系统数据库的变更日志,解析变更日志以获取系统数据库的数据变更信息;中间件服务器利用数据变更信息从数据表中获取待同步数据;中间件服务器按照数据表与缓存键之间的映射关系将待同步数据同步至缓存数据库,其中,中间件服务器中存储有数据表与缓存键之间的映射关系表。为解决上述技术问题,本专利技术采用的另一个技术方案是:提供一种数据同步方法,所述方法包括:分布式应用服务器获取系统数据库的节点信息,并将所述节点信息发送至系统服务器和中间件服务器,系统服务器根据节点信息切换主节点的连接,并将其他各节点的数据同步至新的主节点中,中间件服务器根据节点信息定位主节点,并获取主节点的变更日志,解析变更日志以获取系统数据库的数据变更信息;利用数据变更信息从数据表中获取待同步数据,并按照数据表与缓存键之间的映射关系将待同步数据同步至缓存数据库,其中,中间件服务器中存储有数据表与缓存键之间的映射关系表。为解决上述技术问题,本专利技术采用的另一个技术方案是:提供一种服务器,所述服务器包括处理器和存储器,处理器耦接存储器,存储器存储有程序,处理器用于执行所述程序实现上述的缓存数据同步方法。为解决上述技术问题,本专利技术采用的另一个技术方案是:提供一种应用系统,所述系统包括:系统服务器、分布式应用服务器、中间件服务器、系统数据库、缓存数据库,系统服务器耦接分布式应用服务器、系统数据库及缓存数据库,分布式应用服务器耦接中间件服务器和系统数据库,中间件服务器耦接系统数据库和缓存数据库;系统服务器用于读/写系统数据库的数据,和/或读取缓存数据库的数据;分布式应用服务器用于获取系统数据库的节点信息,并将节点信息发送至系统服务器和中间件服务器;中间件服务器用于获取系统数据库变更日志,解析变更日志以获取系统数据库的数据变更信息,利用数据变更信息从数据表中获取待同步数据,并按照数据表与缓存键之间的映射关系将待同步数据同步至缓存数据库,其中,中间件服务器中存储有数据表与缓存键之间的映射关系表。为解决上述技术问题,本专利技术采用的另一个技术方案是:提供一种具有存储功能的装置,所述装置存储有程序,所述程序被执行时能够实现上述的数据同步方法。本专利技术的有益效果是:区别于现有技术的情况,本专利技术通过中间件服务器监听系统数据库的变更日志,解析获取变更记录,且中间件服务器中存储有数据表与缓存键之间的映射关系表,在服务端即可将数据的变更实时更新至缓存,可确保系统数据库与缓存数据库的数据的一致性。附图说明图1是本专利技术缓存数据同步方法第一实施方式的流程示意图;图2是本专利技术应用系统第一实施方式的结构示意图;图3是本专利技术应用系统第二实施方式的架构示意图;图4是本申请数据同步方法第一实施方式的流程示意图;图5是本申请服务器第一实施方式的结构示意图;图6是本申请具有存储功能的装置第一实施方式的结构示意图。具体实施方式为使本申请的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本申请进一步详细说明。本申请提供一种缓存数据同步方法,至少可应用于高并发应用系统中。请参阅图1,图1是本专利技术缓存数据同步方法第一实施方式的流程示意图。在该实施方式中,缓存数据同步方法包括如下步骤:S101:中间件服务器获取系统数据库的变更日志,解析变更日志以获取系统数据库的数据变更信息。其中,系统数据库是关系型数据库,如MySQL等关系型数据库,系统数据库用于存储应用系统的重要数据。系统数据库的变更日志是二进制日志(Binlog日志),Binlog日志是MySQL最重要的日志,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间。如Binlog日志记录着系统数据库的增加、修改和删除等数据变更信息。S102:中间件服务器利用数据变更信息从数据表中获取待同步数据。其中,在获取系统数据库的数据变更信息时,同时获取同步配置信息,同步配置信息包括缓存数据库的地址信息、哪些数据库及数据库中哪些数据表需要进行同步缓存以及同步缓存的同步规则等。获取变更数据中的数据对应的数据名,在同步配置信息的数据表中查找是否有与该数据名相匹配的记录,若有,则该数据名对应的数据即为待同步数据。S103:中间件服务器按照数据表与缓存键之间的映射关系将待同步数据同步至缓存数据库,其中,中间件服务器中存储有数据表与缓存键之间的映射关系表。其中,使用缓存项的key能够唯一确定一个缓存项,利用数据表与缓存键之间的映射关系,能够将待同步数据对应的写入缓存数据库,对缓存项进行更新,提高数据同步缓存的可靠性。其中,缓存数据库可以是Redis数据库,Redis是RemoteDictionaryServer(远程数据服务)的缩写,是一款内存高速缓存数据库,属key-value型数据库。Redis数据库性能强劲,具有较多优点。如Redis数据库完全在内存中,处理速度非常快。Redis还支持数据持久化,可以将内存中的数据存储到磁盘上,方便在宕机等突发情况下快速恢复。Redis支持丰富的数据类型,除简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。能够保证数据一致性,所有Redis操作是原子的,这保证了如果两个客户端同时访问的Redis服务器将获得更新后的值。其中,在一实施方式中,利用中间件服务器获取系统数据库的变更日志。中间件可以是Cannal中间件,Canal会将自己伪装成MySQL的从节点(Slave),并从主节点(Master)获取Binlog,解析和贮存后供下游消费端使用。Canal包含两个组成部分:服务端和客户端。服务端负责连接至不同的MySQL实例,并为每个实例维护一个事件消息队列;客户端则可以订阅这些队列中的数据本文档来自技高网...

【技术保护点】
1.一种缓存数据同步方法,其特征在于,所述方法包括:中间件服务器获取系统数据库的变更日志,解析所述变更日志以获取所述系统数据库的数据变更信息;所述中间件服务器利用所述数据变更信息从数据表中获取待同步数据;所述中间件服务器按照数据表与缓存键之间的映射关系将所述待同步数据同步至缓存数据库,其中,所述中间件服务器中存储有所述数据表与缓存键之间的映射关系表。

【技术特征摘要】
1.一种缓存数据同步方法,其特征在于,所述方法包括:中间件服务器获取系统数据库的变更日志,解析所述变更日志以获取所述系统数据库的数据变更信息;所述中间件服务器利用所述数据变更信息从数据表中获取待同步数据;所述中间件服务器按照数据表与缓存键之间的映射关系将所述待同步数据同步至缓存数据库,其中,所述中间件服务器中存储有所述数据表与缓存键之间的映射关系表。2.根据权利要求1所述的缓存数据同步方法,其特征在于,所述中间件服务器按照数据表与缓存键之间的映射关系将所述待同步数据同步至缓存数据库包括:所述中间件服务器按照数据表与缓存键之间的映射关系将所述待同步数据同步至不同机房中的多个所述缓存数据库。3.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述处理器耦接所述存储器,所述存储器存储有程序,所述处理器用于执行所述程序实现如权利要求1或2所述的缓存数据同步方法。4.一种数据同步方法,其特征在于,所述方法包括:分布式应用服务器获取系统数据库的节点信息,并将所述节点信息发送至系统服务器和中间件服务器;所述系统服务器根据所述节点信息切换主节点的连接,并将其他各节点的数据同步到新的主节点中;所述中间件服务器根据所述节点信息定位主节点,并获取所述主节点的变更日志,解析所述变更日志以获取所述系统数据库的数据变更信息;利用所述数据变更信息从数据表中获取待同步数据,并按照数据表与缓存键之间的映射关系将所述待同步数据同步至缓存数据库,其中,所述中间件服务器中存储有数据表与缓存键之间的映射关系表。5.根据权利要求4所述的数据同步方法,其特征在于,所述方法还包括:所述分布式应用服务器对所述节点信息进行持久化,所述节点信息包括所述系统数据库集群各节点的状态信息以及当前主节点的信息。6.一种应用系统,其特征在于,所述系统包括:系统服务器、分布式应用服务器、中间件服务器、系统数据库、缓存数据库,所述系统服务器耦接所述分布式应用服务器、系统数据库及缓存数据库,所述分布式应用服务器耦接所述中间件服务器和所述系统数据库,所述中间...

【专利技术属性】
技术研发人员:黄湘秦波
申请(专利权)人:广州虎牙信息科技有限公司
类型:发明
国别省市:广东,44

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

1