CN110417892B - 基于报文解析的数据复制链路优化方法及装置 - Google Patents
基于报文解析的数据复制链路优化方法及装置 Download PDFInfo
- Publication number
- CN110417892B CN110417892B CN201910698794.6A CN201910698794A CN110417892B CN 110417892 B CN110417892 B CN 110417892B CN 201910698794 A CN201910698794 A CN 201910698794A CN 110417892 B CN110417892 B CN 110417892B
- Authority
- CN
- China
- Prior art keywords
- message
- platform
- sending
- platform end
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种基于报文解析的数据复制链路优化方法及装置,该优化方法包括:获取主机端发送的MQ报文,并将所述MQ报文放入缓存,其中,所述MQ报文包括:消息ID以及报文的字段偏移量信息;根据所述消息ID确定所述MQ报文对应的主机表,并获取所述主机表对应的预设的复制预定参数;根据所述复制预定参数以及所述字段偏移量信息从所述MQ报文中提取字段数据,并组合成平台端报文;将所述平台端报文发送到平台分布式消息引擎,以使平台端的数据库从所述平台分布式消息引擎获取相应的平台端报文。本发明解决了由于受CDC的限制导致现有的主机到平台数据复制链路的数据复制性能不理想的技术问题。
Description
技术领域
本发明涉及数据复制领域,具体而言,涉及一种基于报文解析的数据复制链路优化方法及装置。
背景技术
在IT架构转型的背景下,许多主机核心应用也转向了开放平台技术的阵地,从而产生了海量的主机到平台的数据共享需求。然而,当前主机到平台分布式消息引擎(KAFKA)或者MYSQL数据库的数据复制,必须要通过在ORACLE中转库+CDC(IBM的端到端复制工具)的复制链路。如图2所示,优化前主机到平台数据复制链路为:主机MQ(消息队列)将MQ报文从主机端发送到开放平台端,由平台MQ接收,报文需要发送到平台ORACLE数据库中进行中转进而发送到CDC单元,最终报文从CDC单元发送到KAFKA实现被MYSQL数据库获取。该据复制链路存在中间链路多、时效低、环节复杂等问题。这些问题不仅降低了数据复制速度,也影响到了数据复制链路运行的稳定性。CDC产品在压测中最高只能到1.5万笔/每秒左右的性能,该性能远远无法满足我行主机核心业务下平台的海量数据需求。为了提升数据复制的性能和时效、同时避免链路复杂这个问题,企业需要考虑新的简洁的复制链路优化方法。
本发明为了解决上述技术问题中的至少一个,提出了一种基于报文解析的数据复制链路优化方法及装置。
需要说明的时,上述背景技术中介绍的优化前主机到平台数据复制链路仅为阐述清楚本发明所要解决的技术问题,不能理解为是本领域的现有技术。
发明内容
本发明的主要目的在于提供一种基于报文解析的数据复制链路优化方法及装置,以解决由于受CDC的限制导致现有的主机到平台数据复制链路的数据复制性能不理想的技术问题。
为了实现上述目的,根据本发明的一个方面,提供了一种基于报文解析的数据复制链路优化方法,该方法包括:
获取主机端发送的MQ报文,并将所述MQ报文放入缓存,其中,所述MQ报文包括:消息ID以及报文的字段偏移量信息;
根据所述消息ID确定所述MQ报文对应的主机表,并获取所述主机表对应的预设的复制预定参数,其中,所述复制预定参数包括:复制的字段数据类型、复制的字段名称以及复制的字段长度;
根据所述复制预定参数以及所述字段偏移量信息从所述MQ报文中提取字段数据,并组合成平台端报文,其中,所述平台端报文包含所述MQ报文对应的主机表的表名信息;
将所述平台端报文发送到平台分布式消息引擎,以使平台端的数据库从所述平台分布式消息引擎获取相应的平台端报文。
可选的,所述将所述平台端报文发送到平台分布式消息引擎,具体包括:
通过生产者线程将平台端报文发送到所述平台分布式消息引擎中的对应的消息引擎集群,其中,所述生产者线程配置有该消息引擎集群的IP、端口信息以及设置的该消息引擎集群对应的表名信息。
可选的,所述将所述平台端报文发送到平台分布式消息引擎,具体包括:
为所述平台端报文配置ID标识信息;
在发送成功后,将所述ID标识信息添加到成功处理列表中。
可选的,该方法还包括:
将与所述成功处理列表中的ID标识信息对应的平台端报文相对应的MQ报文从缓存中清除。
可选的,该方法还包括:
通过消费者线程将平台端报文从所述平台分布式消息引擎中的目标消息引擎集群中拉取到平台端的数据库,其中,所述消费者线程配置有该目标消息引擎集群的IP、端口信息以及设置的拉取的平台端报文的表名信息。
可选的,所述生产者线程还配置有用户设置的报文发送频率、每次发送的报文大小、发送成功确认信息、发送失败重发次数、报文储存时间、报文压缩方式中的至少一种或任意组合。
可选的,所述通过生产者线程将平台端报文发送到所述平台分布式消息引擎中的对应的消息引擎集群,包括:
所述生产者线程生成所述平台端报文的至少一个副本,并将该副本发送到所述平台分布式消息引擎中的对应的消息引擎集群。
为了实现上述目的,根据本发明的另一方面,提供了一种基于报文解析的数据复制链路优化装置,该装置包括:
MQ报文预读单元,用于获取主机端发送的MQ报文,并将所述MQ报文放入缓存,其中,所述MQ报文包括:消息ID以及报文的字段偏移量信息;
复制预定参数确定单元,用于根据所述消息ID确定所述MQ报文对应的主机表,并获取所述主机表对应的预设的复制预定参数,其中,所述复制预定参数包括:复制的字段数据类型、复制的字段名称以及复制的字段长度;
报文解析单元,用于根据所述复制预定参数以及所述字段偏移量信息从所述MQ报文中提取字段数据,并组合成平台端报文,其中,所述平台端报文包含所述MQ报文对应的主机表的表名信息;
报文发送单元,用于将所述平台端报文发送到平台分布式消息引擎,以使平台端的数据库从所述平台分布式消息引擎获取相应的平台端报文。
可选的,所述报文发送单元,包括:
生产者模块,用于通过生产者线程将平台端报文发送到所述平台分布式消息引擎中的对应的消息引擎集群,其中,所述生产者线程配置有该消息引擎集群的IP、端口信息以及设置的该消息引擎集群对应的表名信息。
可选的,所述报文发送单元,包括:
标识配置模块,用于为所述平台端报文配置ID标识信息;
成功处理记录模块,用于在发送成功后,将所述ID标识信息添加到成功处理列表中。
可选的,该装置还包括:
MQ报文清理单元,用于将与所述成功处理列表中的ID标识信息对应的平台端报文相对应的MQ报文从缓存中清除。
可选的,该装置还包括:
消费者单元,用于通过消费者线程将平台端报文从所述平台分布式消息引擎中的目标消息引擎集群中拉取到平台端的数据库,其中,所述消费者线程配置有该目标消息引擎集群的IP、端口信息以及设置的拉取的平台端报文的表名信息。
可选的,所述生产者线程还配置有用户设置的报文发送频率、每次发送的报文大小、发送成功确认信息、发送失败重发次数、报文储存时间、报文压缩方式中的至少一种或任意组合。
可选的,所述生产者模块,还用于生成所述平台端报文的至少一个副本,并将该副本发送到所述平台分布式消息引擎中的对应的消息引擎集群。
为了实现上述目的,根据本发明的另一方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于报文解析的数据复制链路优化方法中的步骤。
为了实现上述目的,根据本发明的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述基于报文解析的数据复制链路优化方法中的步骤。
本发明的有益效果为:本发明实施例通过直接读取主机端发送的MQ报文,将MQ报文解析还原后再发送到分布式消息引擎(KAFKA),供下游应用的数据库使用,减少中间链路环节,提升响应速度,提升了数据复制链路运行稳定性。此外,本发明实施例的优化方法克服了原有的需要通过CDC中转报文的不便,以前受限于CDC的响应速度低的问题将不会出现,因此本发明解决了由于受CDC的限制导致现有的主机到平台数据复制链路的数据复制性能不理想的技术问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明实施例基于报文解析的数据复制链路优化方法的流程图;
图2是优化前的主机到平台数据复制链路示意图;
图3是本发明实施例主机到平台数据复制链路示意图;
图4是本发明实施例平台端报文第一发送流程图;
图5是本发明实施例平台端报文第二发送流程图;
图6是本发明实施例基于报文解析的数据复制链路优化装置的第一结构框图;
图7是本发明实施例报文发送单元第一组成结构图;
图8是本发明实施例报文发送单元第二组成结构图;
图9是本发明实施例基于报文解析的数据复制链路优化装置的第二结构框图;
图10是本发明实施例计算机设备示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
图3是本发明实施例优化后的主机到平台数据复制链路示意图,如图3所示,本发明自行研制了解析发报模块代替之前的ORACLE中转库+CDC(IBM的端到端复制工具),该解析发报模块与本发明的基于报文解析的数据复制链路优化方法及装置相对应。如图3所示,在优化后的复制链路中,数据从主机数据库发送到主机MQ(消息队列),数据以报文形式(MQ报文)从主机MQ(消息队列)发送到平台MQ(消息队列),其中,这两个步骤可以通过QREP工具来进行封装完成,QREP的基本原理是数据库日志回放,主要处理流程为源端(Capture)捕获更新日志,打包转化为消息,通过MQ(消息队列)传递,目标端(Apply)解析、回放更新SQL。
进而平台MQ的报文被解析发报模块进行解析处理。需要说明的是,主机MQ传输到平台MQ的报文,是以十六进制的信息存在的,该报文无法直接读取,本发明通过制定复制预订参数(比如复制的表名信息、复制的表字段结构信息),并结合一定的报文标志、报文格式、报文顺序来逐笔解析MQ报文并生成新的可读取格式的报文,生成的新的报文包含类报文发生的时间信息、SQL操作类型信息(涵盖数据库常用的增删改等操作)、业务报文本身的信息。解析模块最终根据不同的SQL操作类型将这些报文回放成更新SQL的数据,同时还会将已发送处理的报文从平台MQ队列中标记删除。
进而将通过解析MQ报文生成的新的可读取格式的报文发送到KAFKA(分布式消息引擎/平台),供下游MYSQL数据库等调取使用。
下面从方法的角度阐述上述解析发报模块的具体实现过程。图1是本发明实施例基于报文解析的数据复制链路优化方法的第一流程图,如图1所示,本实施例的基于报文解析的数据复制链路优化方法包括步骤S101至步骤S104。
步骤S101,获取主机端发送的MQ报文,并将所述MQ报文放入缓存,其中,所述MQ报文包括:消息ID以及报文的字段偏移量信息。
在本发明实施例中,主机端发送的MQ报文堆积在平台MQ队列之后,启动线程以预览读的方式读取MQ报文,并将报文放入缓存。预览读的方式则能保证消息在后续一定时间段内还能恢复。
在本发明实施例中,MQ报文,是完全以十六进制形式展现的文本信息,其特点是不具有可读性,无法直接发送,因为这样的数据对于银行内的业务来说是无意义的数据,必须在通过技术手段进行解析之后才能成为可读可用的数据。在本发明实施例中,MQ报文由4部分组成:
消息ID:相当于每条消息的身份证,唯一性;
消息头:包含产品名称、消息类型、产品版本号等,其中,消息类型标识指明该报文是实际业务发送的报文或者是心跳信息;
业务报文头:又为业务消息头,包含更新用户、更新时间戳、消息记录数等;
业务报文:包含实际的报文信息、表字段长度、键值字段,键值偏移量、非键值字段、非键值偏移量等信息。其中,偏移量信息可以指明某表某字段的实际报文数据在业务报文的存储位置。
本发明实施例的字段偏移量信息包括上述键值偏移量信息和非键值偏移量信息。
在本发明实施例中,在对MQ报文进行解析之前还需要根据报文的消息类型判断该条报文是否需要解析处理。如果是心跳信息则无需处理,记录该消息发送过即可;如果是业务报文,则进行后续解析处理。
步骤S102,根据所述消息ID确定所述MQ报文对应的主机表,并获取所述主机表对应的预设的复制预定参数,其中,所述复制预定参数包括:复制的字段数据类型、复制的字段名称以及复制的字段长度。
在本发明实施例中,本步骤先根据报文的消息ID,定位到该报文是属于哪张主机表的报文,其中不同的主机表对应有不同的提前配置的复制预订参数。其中,复制预订参数包含复制的字段名称、长度、字段数据类型等信息。进而按照提前定好的复制预订参数,并结合一定的报文标志、报文格式、报文顺序来逐笔解析MQ报文,最终可以将报文还原为业务更新SQL语句。
步骤S103,根据所述复制预定参数以及所述字段偏移量信息从所述MQ报文中提取字段数据,并组合成平台端报文,其中,所述平台端报文包含所述MQ报文对应的主机表的表名信息。
在本发明实施例中,本步骤根据提前配置过复制预订参数(复制的字段名称、长度、字段数据类型等信息),并结合MQ报文的字段偏移量信息,字段偏移量信息可以指明某字段的实际报文数据在报文中的存储位置,进而逐个将表字段数据一一提取并组成到一个预设的可读格式的报文中,生成平台端报文。
步骤S104,将所述平台端报文发送到平台分布式消息引擎,以使平台端的数据库从所述平台分布式消息引擎获取相应的平台端报文。
在本发明实施例中,平台分布式消息引擎KAFKA,其中KAFKA包括至少一个消息引擎集群服务器。上述平台端的数据库包括MYSQL数据库,MYSQL数据库根据需要订阅使用KAFKA内的报文数据。
由以上描述可以看出,本发明实施例通过直接读取主机端发送的MQ报文,将MQ报文解析还原后再发送到分布式消息引擎(KAFKA),供下游应用的数据库使用,减少中间链路环节,提升响应速度,提升了数据复制链路运行稳定性。此外,本发明实施例的优化方法克服了原有的需要通过CDC中转报文的不便,以前受限于CDC的响应速度低的问题将不会出现,因此本发明解决了由于受CDC的限制导致现有的主机到平台数据复制链路的数据复制性能不理想的技术问题。
图4是本发明实施例平台端报文第一发送流程图,如图4所示,在本发明的实施例中,上述步骤S104的将所述平台端报文发送到平台分布式消息引擎具体可以包括步骤S201和步骤S202。
步骤S201,生成平台端报文。
步骤S202,通过生产者线程将平台端报文发送到所述平台分布式消息引擎中的对应的消息引擎集群,其中,所述生产者线程配置有该消息引擎集群的IP、端口信息以及设置的该消息引擎集群对应的表名信息。
在本发明实施例中,上述步骤S104的将平台端报文发送到平台分布式消息引擎KAFKA具体可以通过应用生产者线程来完成。生产者是当前主流的消息引擎KAFKA的重要组件,需要提前给生产者配置好目标KAFKA集群的IP和端口信息、需要复制的表名信息,生产者线程接收到平台端报文,将需要复制的表的数据(平台端报文)发往已经提前配置IP和端口信息的目标KAFKA集群(消息引擎集群)。
在本发明的实施例中,为了让发送功能更具有灵活性,所述生产者线程还配置有用户设置的报文发送频率、每次发送的报文大小、发送成功确认信息、发送失败重发次数、报文储存时间、报文是否压缩、报文压缩方式等。通过各种参数的丰富配置,达到性能最大化的目的。
在本发明的实施例中,生产者可以根据自身需要设置副本,所谓副本就是消息的冗余机制,比如一个表的报文要求有3个副本,那么当生产者线程发送报文到目标KAFKA集群的时候,只有当报文的3个副本都发送成功了,才认为报文发送是成功的。通过副本机制,达到了数据冗余灾备的目的,有效的保证消息在KAFKA集群的数据安全性。
图5是本发明实施例平台端报文第二发送流程图,如图5所示,在本发明的实施例中,上述步骤S104的将所述平台端报文发送到平台分布式消息引擎具体还可以包括步骤步骤S301和步骤S303。
步骤S301,为所述平台端报文配置ID标识信息。
步骤S302,在发送成功后,将所述ID标识信息添加到成功处理列表中。
步骤S303,将与所述成功处理列表中的ID标识信息对应的平台端报文相对应的MQ报文从缓存中清除。
在本发明实施例中,通过生产者线程或者其他方法将平台端报文发送到KAFKA时,还会赋予每一条发送的报文唯一标识的一个ID信息,通过将被成功处理的消息的ID记录下来,标识该ID信息已经成功发送。
在本发明实施例中,清理线程不断扫描成功处理列表,当发现一个ID标识信息的平台端报文已经处理成功后,就会将对应的MQ报文从平台MQ(消息队列)以及缓存中清除,并将清理时间写入该MQ报文的被清理时间信息。
在本发明的实施例中,在将平台端报文发送到平台分布式消息引擎之后,还包括:通过消费者线程将平台端报文从所述平台分布式消息引擎中的目标消息引擎集群中拉取到平台端的数据库,其中,所述消费者线程配置有该目标消息引擎集群的IP、端口信息以及设置的拉取的平台端报文的表名信息。
在本发明实施例中,报文从KAFKA发送到MYSQL数据库可以通过使用KAFKA的消费者来完成。消费者是当前主流的消息引擎KAFKA的重要组件,和上述提到的生产者对应。需要提前给消费者配置目标KAFKA集群(目标消息引擎集群)的IP信息和端口信息,需要获取的表名信息。这些信息均与生产者配置的一样。消费者线程启动之后,会不断的通过配置的IP信息和端口信息连接到目标KAFKA集群,根据需要复制的表名信息去找是否存在该表的新消息,如果有则拉取下来,并将报文按照MYSQL的数据格式要求***到MYSQL数据库。如果没有新消息则等待,休眠,再次扫描。
由以上描述可以看出,本发明实施例的基于报文解析的数据复制链路优化方法充分利用现有的服务器设备,无需外购产品,通过自行创新研发的方式,直接读取平台MQ中的报文,将报文解析还原成可读取格式的报文后再发送到分布式消息引擎(KAFKA),供下游应用使用,减少中间链路环节,提升响应速度,提升数据复制链路运行稳定性,并减少了ORACLE服务器的软硬件消耗。本发明实施例的基于报文解析的数据复制链路优化方法实现了至少以下有益效果。
1、减少中间链路,提升响应速度。
目前的数据复制链路需要平台MQ报文发送到ORACLE中转库到CDC再到分布式消息引擎(KAFKA),优化后,平台MQ报文直接通过解析发报模块到分布式消息平台(KAFKA),链路短了,以前受限于CDC的响应速度低的问题将不会出现。
2、提升数据复制链路运行稳定性。
当前的链路中间环节多,任何一个环节出问题,都会导致整个复制链路中断,减少中间链路环节,就可以有效的减少出问题的风险。
3、节省ORACLE服务器的消耗
当前的复制链路,需要很多台服务器支撑ORACLE数据库,优化后由于应用报文不需要落到ORACLE数据库,可以节省ORACLE服务器的消耗,降低软硬件成本。
4、生产者组件发送消息可以按需配置发送参数,灵活适应各应用需求,内置的副本功能可以保证数据不丢失。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
基于同一发明构思,本发明实施例还提供了一种基于报文解析的数据复制链路优化装置,可以用于实现上述实施例所描述的基于报文解析的数据复制链路优化方法,如下面的实施例所述。由于基于报文解析的数据复制链路优化装置解决问题的原理与基于报文解析的数据复制链路优化方法相似,因此基于报文解析的数据复制链路优化装置的实施例可以参见基于报文解析的数据复制链路优化方法的实施例,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是本发明实施例基于报文解析的数据复制链路优化装置的第一结构框图,如图6所示,本发明实施例基于报文解析的数据复制链路优化装置包括:MQ报文预读单元1、复制预定参数确定单元2、报文解析单元3和报文发送单元4。
MQ报文预读单元1,用于获取主机端发送的MQ报文,并将所述MQ报文放入缓存,其中,所述MQ报文包括:消息ID以及报文的字段偏移量信息。
复制预定参数确定单元2,用于根据所述消息ID确定所述MQ报文对应的主机表,并获取所述主机表对应的预设的复制预定参数,其中,所述复制预定参数包括:复制的字段数据类型、复制的字段名称以及复制的字段长度。
报文解析单元3,用于根据所述复制预定参数以及所述字段偏移量信息从所述MQ报文中提取字段数据,并组合成平台端报文,其中,所述平台端报文包含所述MQ报文对应的主机表的表名信息。
报文发送单元4,用于将所述平台端报文发送到平台分布式消息引擎,以使平台端的数据库从所述平台分布式消息引擎获取相应的平台端报文。
图7是本发明实施例报文发送单元第一组成结构图,如图7所示,本发明实施例的报文发送单元4包括生产者模块5。
生产者模块5,用于通过生产者线程将平台端报文发送到所述平台分布式消息引擎中的对应的消息引擎集群,其中,所述生产者线程配置有该消息引擎集群的IP、端口信息以及设置的该消息引擎集群对应的表名信息。
在本发明的实施例中,所述生产者线程还配置有用户设置的报文发送频率、每次发送的报文大小、发送成功确认信息、发送失败重发次数、报文储存时间、报文压缩方式中的至少一种或任意组合。
在本发明的实施例中,所述生产者模块5,还用于生成所述平台端报文的至少一个副本,并将该副本发送到所述平台分布式消息引擎中的对应的消息引擎集群。
图8是本发明实施例报文发送单元第二组成结构图,如图8所示,本发明实施例的报文发送单元4包括:标识配置模块6和成功处理记录模块7。
标识配置模块6,用于为所述平台端报文配置ID标识信息。
成功处理记录模块7,用于在发送成功后,将所述ID标识信息添加到成功处理列表中。
图9是本发明实施例基于报文解析的数据复制链路优化装置的第二结构框图,如图9所示,本发明实施例的数据复制链路优化装置还包括:MQ报文清理单元8,该MQ报文清理单元8与成功处理记录模块7连接。
MQ报文清理单元8,用于将与所述成功处理列表中的ID标识信息对应的平台端报文相对应的MQ报文从缓存中清除。
在本发明的可选实施例中,本发明的基于报文解析的数据复制链路优化装置还包括:消费者单元。
消费者单元,用于通过消费者线程将平台端报文从所述平台分布式消息引擎中的目标消息引擎集群中拉取到平台端的数据库,其中,所述消费者线程配置有该目标消息引擎集群的IP、端口信息以及设置的拉取的平台端报文的表名信息。
由以上描述可以看出,本发明实施例通过直接读取主机端发送的MQ报文,将MQ报文解析还原后再发送到分布式消息引擎(KAFKA),供下游应用的数据库使用,减少中间链路环节,提升响应速度,提升了数据复制链路运行稳定性。此外,本发明实施例的优化方法克服了原有的需要通过CDC中转报文的不便,以前受限于CDC的响应速度低的问题将不会出现,因此本发明解决了由于受CDC的限制导致现有的主机到平台数据复制链路的数据复制性能不理想的技术问题。
为了实现上述目的,根据本申请的另一方面,还提供了一种计算机设备。如图10所示,该计算机设备包括存储器、处理器、通信接口以及通信总线,在存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例方法中的步骤。
处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及单元,如本发明上述方法实施例中对应的程序单元。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及作品数据处理,即实现上述方法实施例中的方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个单元存储在所述存储器中,当被所述处理器执行时,执行上述实施例中的方法。
上述计算机设备具体细节可以对应参阅上述实施例中对应的相关描述和效果进行理解,此处不再赘述。
为了实现上述目的,根据本申请的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述基于报文解析的数据复制链路优化方法中的步骤。本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种基于报文解析的数据复制链路优化方法,其特征在于,包括:
获取主机端发送的MQ报文,并将所述MQ报文放入缓存,其中,所述MQ报文包括:消息ID以及报文的字段偏移量信息;
根据所述消息ID确定所述MQ报文对应的主机表,并获取所述主机表对应的预设的复制预定参数,其中,所述复制预定参数包括:复制的字段数据类型、复制的字段名称以及复制的字段长度;
根据所述复制预定参数以及所述字段偏移量信息从所述MQ报文中提取字段数据,并组合成平台端报文,其中,所述平台端报文包含所述MQ报文对应的主机表的表名信息;
将所述平台端报文发送到平台分布式消息引擎,以使平台端的数据库从所述平台分布式消息引擎获取相应的平台端报文。
2.根据权利要求1所述的基于报文解析的数据复制链路优化方法,其特征在于,所述将所述平台端报文发送到平台分布式消息引擎,具体包括:
通过生产者线程将平台端报文发送到所述平台分布式消息引擎中的对应的消息引擎集群,其中,所述生产者线程配置有该消息引擎集群的IP、端口信息以及设置的该消息引擎集群对应的表名信息。
3.根据权利要求1所述的基于报文解析的数据复制链路优化方法,其特征在于,所述将所述平台端报文发送到平台分布式消息引擎,具体包括:
为所述平台端报文配置ID标识信息;
在发送成功后,将所述ID标识信息添加到成功处理列表中。
4.根据权利要求3所述的基于报文解析的数据复制链路优化方法,其特征在于,还包括:
将与所述成功处理列表中的ID标识信息对应的平台端报文相对应的MQ报文从缓存中清除。
5.根据权利要求1所述的基于报文解析的数据复制链路优化方法,其特征在于,还包括:
通过消费者线程将平台端报文从所述平台分布式消息引擎中的目标消息引擎集群中拉取到平台端的数据库,其中,所述消费者线程配置有该目标消息引擎集群的IP、端口信息以及设置的拉取的平台端报文的表名信息。
6.根据权利要求2所述的基于报文解析的数据复制链路优化方法,其特征在于,所述生产者线程还配置有用户设置的报文发送频率、每次发送的报文大小、发送成功确认信息、发送失败重发次数、报文储存时间、报文压缩方式中的至少一种或任意组合。
7.根据权利要求2所述的基于报文解析的数据复制链路优化方法,其特征在于,所述通过生产者线程将平台端报文发送到所述平台分布式消息引擎中的对应的消息引擎集群,包括:
所述生产者线程生成所述平台端报文的至少一个副本,并将该副本发送到所述平台分布式消息引擎中的对应的消息引擎集群。
8.一种基于报文解析的数据复制链路优化装置,其特征在于,包括:
MQ报文预读单元,用于获取主机端发送的MQ报文,并将所述MQ报文放入缓存,其中,所述MQ报文包括:消息ID以及报文的字段偏移量信息;
复制预定参数确定单元,用于根据所述消息ID确定所述MQ报文对应的主机表,并获取所述主机表对应的预设的复制预定参数,其中,所述复制预定参数包括:复制的字段数据类型、复制的字段名称以及复制的字段长度;
报文解析单元,用于根据所述复制预定参数以及所述字段偏移量信息从所述MQ报文中提取字段数据,并组合成平台端报文,其中,所述平台端报文包含所述MQ报文对应的主机表的表名信息;
报文发送单元,用于将所述平台端报文发送到平台分布式消息引擎,以使平台端的数据库从所述平台分布式消息引擎获取相应的平台端报文。
9.根据权利要求8所述的基于报文解析的数据复制链路优化装置,其特征在于,所述报文发送单元,包括:
生产者模块,用于通过生产者线程将平台端报文发送到所述平台分布式消息引擎中的对应的消息引擎集群,其中,所述生产者线程配置有该消息引擎集群的IP、端口信息以及设置的该消息引擎集群对应的表名信息。
10.根据权利要求8所述的基于报文解析的数据复制链路优化装置,其特征在于,所述报文发送单元,包括:
标识配置模块,用于为所述平台端报文配置ID标识信息;
成功处理记录模块,用于在发送成功后,将所述ID标识信息添加到成功处理列表中。
11.根据权利要求10所述的基于报文解析的数据复制链路优化装置,其特征在于,还包括:
MQ报文清理单元,用于将与所述成功处理列表中的ID标识信息对应的平台端报文相对应的MQ报文从缓存中清除。
12.根据权利要求8所述的基于报文解析的数据复制链路优化装置,其特征在于,还包括:
消费者单元,用于通过消费者线程将平台端报文从所述平台分布式消息引擎中的目标消息引擎集群中拉取到平台端的数据库,其中,所述消费者线程配置有该目标消息引擎集群的IP、端口信息以及设置的拉取的平台端报文的表名信息。
13.根据权利要求9所述的基于报文解析的数据复制链路优化装置,其特征在于,所述生产者线程还配置有用户设置的报文发送频率、每次发送的报文大小、发送成功确认信息、发送失败重发次数、报文储存时间、报文压缩方式中的至少一种或任意组合。
14.根据权利要求9所述的基于报文解析的数据复制链路优化装置,其特征在于,所述生产者模块,还用于生成所述平台端报文的至少一个副本,并将该副本发送到所述平台分布式消息引擎中的对应的消息引擎集群。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项方法中的步骤。
16.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序在计算机处理器中执行时实现如权利要求1至7任意一项方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910698794.6A CN110417892B (zh) | 2019-07-31 | 2019-07-31 | 基于报文解析的数据复制链路优化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910698794.6A CN110417892B (zh) | 2019-07-31 | 2019-07-31 | 基于报文解析的数据复制链路优化方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110417892A CN110417892A (zh) | 2019-11-05 |
CN110417892B true CN110417892B (zh) | 2021-08-27 |
Family
ID=68364522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910698794.6A Active CN110417892B (zh) | 2019-07-31 | 2019-07-31 | 基于报文解析的数据复制链路优化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110417892B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113703954A (zh) * | 2020-05-21 | 2021-11-26 | 中移(苏州)软件技术有限公司 | 一种消息备份方法、装置、电子设备及计算机存储介质 |
CN111782671A (zh) * | 2020-07-01 | 2020-10-16 | 浪潮云信息技术股份公司 | 一种基于分布式数据库实现cdc的优化方法 |
CN111831516A (zh) * | 2020-07-24 | 2020-10-27 | 中国工商银行股份有限公司 | 数据复制监控方法、装置、设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103221949A (zh) * | 2010-07-27 | 2013-07-24 | 甲骨文国际公司 | Mysql数据库的异构的基于日志的复制 |
CN104935658A (zh) * | 2015-06-17 | 2015-09-23 | 交通银行股份有限公司 | 一种银行任务分配方法及装置 |
WO2019067911A1 (en) * | 2017-09-29 | 2019-04-04 | Oracle International Corporation | SYSTEM AND METHOD FOR CAPTURING CHANGE DATA FROM DISTRIBUTED DATA SOURCES FOR USE ON HETEROGENEOUS TARGETS |
CN109656999A (zh) * | 2018-10-11 | 2019-04-19 | 平安科技(深圳)有限公司 | 大数据量的数据同步方法、设备、存储介质及装置 |
-
2019
- 2019-07-31 CN CN201910698794.6A patent/CN110417892B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103221949A (zh) * | 2010-07-27 | 2013-07-24 | 甲骨文国际公司 | Mysql数据库的异构的基于日志的复制 |
CN104935658A (zh) * | 2015-06-17 | 2015-09-23 | 交通银行股份有限公司 | 一种银行任务分配方法及装置 |
WO2019067911A1 (en) * | 2017-09-29 | 2019-04-04 | Oracle International Corporation | SYSTEM AND METHOD FOR CAPTURING CHANGE DATA FROM DISTRIBUTED DATA SOURCES FOR USE ON HETEROGENEOUS TARGETS |
CN109656999A (zh) * | 2018-10-11 | 2019-04-19 | 平安科技(深圳)有限公司 | 大数据量的数据同步方法、设备、存储介质及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110417892A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109034993B (zh) | 对账方法、设备、***及计算机可读存储介质 | |
CN108459939B (zh) | 一种日志收集方法、装置、终端设备及存储介质 | |
CN110417892B (zh) | 基于报文解析的数据复制链路优化方法及装置 | |
CN107220142B (zh) | 执行数据恢复操作的方法及装置 | |
US11615082B1 (en) | Using a data store and message queue to ingest data for a data intake and query system | |
US8676749B2 (en) | Statement logging in databases | |
US9031997B2 (en) | Log file compression | |
WO2017080431A1 (zh) | 一种基于日志解析的数据库复制方法及装置 | |
CN101277272B (zh) | 一种海量广播数据入库的实现方法 | |
US10853157B2 (en) | Compact binary event log generation | |
US11966797B2 (en) | Indexing data at a data intake and query system based on a node capacity threshold | |
CN114048217A (zh) | 增量数据的同步方法和装置、电子设备和存储介质 | |
CN108228322B (zh) | 一种分布式链路跟踪、分析方法及服务器、全局调度器 | |
CN107346270B (zh) | 基于实时计算的基数估计的方法和*** | |
CN113553310B (zh) | 数据的采集方法及装置、存储介质、电子设备 | |
CN102609479A (zh) | 一种内存数据库节点复制方法 | |
CN108228755A (zh) | 基于日志解析技术的MySQL数据库到Hadoop平台的数据同步复制方法 | |
CN105138417B (zh) | 一种基于zfs send的异步复制方法 | |
CN117271584A (zh) | 数据处理方法及装置、计算机可读存储介质和电子设备 | |
CN113900855B (zh) | 一种交换机异常状态的主动热启动方法、***及装置 | |
US20210287181A1 (en) | Method and apparatus for processing time records | |
WO2017167101A1 (zh) | 彩信附件管理方法、装置、通信***及计算机存储介质 | |
CN111182047B (zh) | 用于在跨网络的大数据平台之间转移文件的方法和*** | |
CN113342890A (zh) | 一种实现跨安全隔离网闸数据库实时同步的方法及*** | |
CN110309176B (zh) | 一种数据处理方法和数据中转站 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |