CN108418879A - 一种高可靠性的海量异构数据传输方法及系统 - Google Patents
一种高可靠性的海量异构数据传输方法及系统 Download PDFInfo
- Publication number
- CN108418879A CN108418879A CN201810158887.5A CN201810158887A CN108418879A CN 108418879 A CN108418879 A CN 108418879A CN 201810158887 A CN201810158887 A CN 201810158887A CN 108418879 A CN108418879 A CN 108418879A
- Authority
- CN
- China
- Prior art keywords
- data
- plug
- transmitting terminal
- initialization
- module
- 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.)
- Granted
Links
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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种高可靠性的海量异构数据传输方法及系统,能够在差异化的网络环境下进行海量异构数据传输时,将数据发送状态通知和offset偏移量进行双重保障,解决了海量异构数据传输时存在的数据丢失问题,对海量异构数据提供高可靠性的传输保障。
Description
技术领域
本发明涉及数据传输技术领域,具体来说,涉及一种高可靠性的海量异构数据传输方法及系统。
背景技术
目前海量数据端到端传输时,由于网络数据发送状态和待发送数据没做有效的关联,数据类型多元化,再加上程序异常退出、网络或其他原因,导致数据丢失、数据延时大等问题。传统的做法一般是发送失败后进行重传,此时,程序异常退出或服务宕机,待发送数据未进行保存导致数据丢失,数据完整性无法得到保证。
综上,现有技术还存在如下不足:
1、程序异常退出或服务宕机时,数量较大,处理逻辑较复杂,导致数据丢失,不完整;
2、数据量较大时,对待发送数据进行缓存并进行物理存储,降低数据丢失率,但存在大批量数据的内存拷贝、IO交互,发送效率低,数据延时大;
3、数据类型多元化。包括图片数据、视频片段数据、卡口过车数据等结构化数据和非结构化数据。
发明内容
本发明的目的在于提出一种高可靠性的海量异构数据传输方法及系统,以克服现有技术中存在的上述不足。
为实现上述技术目的,本发明的技术方案是这样实现的:
一种高可靠性的海量异构数据传输方法,包括以下步骤:
1)发送端根据本地存储上的offset偏移量从指定的索引位置进行消费数据,然后将数据写入发送队列;
2)发送端根据预设条件执行发送动作;
3)发送端根据数据是否发送成功执行对应的动作:所述数据发送成功时,发送端根据该条数据的ID执行更新offset偏移量并进行本地保存,所述数据发送失败时,发送端将数据写入临时缓冲队列,暂停消费数据,不对offset偏移量更新,待临时缓冲队列中的数据发送成功后,再执行更新offset偏移量并进行本地保存;
4)重复步骤1)-步骤3)直至所有数据发送完毕。
进一步的,步骤1)之前发送端还进行数据传输系统的初始化操作,所述初始化操作包括:
读取配置文件,加载基础数据,基础数据包括用户组ID、主题、offset偏移量、提交方式、消费队列大小、消息条数、更新周期和数据类型;
初始化数据库连接和网络连接;
加载插件并获取函数地址,插件包括数据消费插件、数据序列化插件、数据下载插件和数据转换插件,执行插件初始化接口。
进一步的,步骤3)中通过设置异常数据回调函数将发送失败的数据写入临时缓冲队列,所述异常数据回调函数还用于将转换失败的数据入转换失败队列并进行落地保存。
进一步的,步骤3)中发送端通过设置数据发送状态通知回调函数来得知数据是否成功。
一种高可靠性的海量异构数据传输系统,包括发送端和与所述发送端连接的至少一个接收端,所述发送端包括:
数据存储模块,用于存储数据;
数据调取模块,用于根据本地存储上的offset偏移量从指定的索引位置进行消费数据,然后将数据写入发送队列;
数据发送模块,用于根据预设条件执行发送动作;
数据发送状态判断模块,用于判断数据是否发送成功;
数据处理模块,包括发送数据处理模块,所述发送数据处理模块用于根据数据是否发送成功执行对应的动作:所述数据发送成功时,发送端根据该条数据的ID执行更新offset偏移量并进行本地保存,所述数据发送失败时,发送端将数据写入临时缓冲队列,暂停消费数据,不对offset偏移量更新,待临时缓冲队列中的数据发送成功后,再执行更新offset偏移量并进行本地保存。
进一步的,所述发送端还包括初始化模块,所述初始化模块包括:
数据初始化模块,用于读取配置文件,加载基础数据,基础数据包括用户组ID、主题、offset偏移量、提交方式、消费队列大小、消息条数、更新周期和数据类型;
网络初始化模块,用于初始化数据库连接和网络连接;
接口初始化模块,用于加载插件并获取函数地址,插件包括数据消费插件、数据序列化插件、数据下载插件和数据转换插件,执行插件初始化接口。插件,如消费插件,数据序列化插件、下载插件等,都是d11,这些d11提供各类操作接口。此处的函数,是指获取对应插件中的提供的函数地址,比如数据消费插件提供初始化、反初始化、数据消费等函数地址,数据序列化插件提供初始化、反初始化、数据序列化等函数地址。
进一步的,所述数据处理模块还包括数据转换处理模块,所述数据转换处理模块用于将转换失败的数据入转换失败队列并进行落地保存。
进一步的,所述数据发送状态判断模块通过设置数据发送状态通知回调函数来得知数据是否成功。
本发明的有益效果:本发明数据传输方法及系统在差异化的网络环境下进行海量异构数据传输时,将数据发送状态通知和offset偏移量进行双重保障,解决了海量异构数据传输时存在的数据丢失问题,对海量异构数据提供高可靠性的传输保障。
附图说明
图1是本发明所述的数据传输系统的结构示意图。
图2是本发明的数据流的整体框架图。
图3是本发明所述的数据传输方法的整体流程图。
图4是本发明所述的数据入发送队列的流程图。
图5是本发明所述的发送队列中的数据的存储结构图。
图6是本发明所述的数据出发送队列的流程图。
图7是本发明数据回调的流程图。
图中所示:
1-发送端;2-接收端;3-数据存储模块;4-数据调取模块;5-数据发送模块;6-数据处理模块;7-数据发送状态判断模块;8-初始化模块;9-发送数据处理模块;10-数据转换处理模块;11-数据初始化模块;12-网络初始化模块;13-接口初始化模块。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
如图1所示,根据本发明的实施例所述的一种高可靠性的海量异构数据传输系统,包括发送端1和与所述发送端1连接的至少一个接收端2,所述发送端1包括:
数据存储模块3,用于存储数据;
数据调取模块4,用于根据本地存储上的offset偏移量从指定的索引位置进行消费数据,然后将数据写入发送队列;
数据发送模块5,用于根据预设条件执行发送动作;
数据发送状态判断模块7,用于判断数据是否发送成功;
数据处理模块6,包括发送数据处理模块9,所述发送数据处理模块9用于根据数据是否发送成功执行对应的动作:所述数据发送成功时,发送端根据该条数据的ID执行更新offset偏移量并进行本地保存,所述数据发送失败时,发送端将数据写入临时缓冲队列,暂停消费数据,不对offset偏移量更新,待临时缓冲队列中的数据发送成功后,再执行更新offset偏移量并进行本地保存。
在本实施例中,所述发送端1还包括初始化模块8,所述初始化模块8包括:
数据初始化模块11,用于读取配置文件,加载基础数据,基础数据包括用户组ID、主题、offset偏移量、提交方式、消费队列大小、消息条数、更新周期和数据类型;
网络初始化模块12,用于初始化数据库连接和网络连接;
接口初始化模块13,用于加载插件并获取函数地址,插件包括数据消费插件、数据序列化插件、数据下载插件和数据转换插件,执行插件初始化接口。
在本实施例中,所述数据处理模块6还包括数据转换处理模块10,所述数据转换处理模块10用于将转换失败的数据入转换失败队列并进行落地保存。
在本实施例中,所述数据发送状态判断模块7通过设置数据发送状态通知回调函数来得知数据是否成功。
本发明还公开了一种高可靠性的海量异构数据传输方法,包括以下步骤:
1)发送端根据本地存储上的offset偏移量从指定的索引位置进行消费数据,然后将数据写入发送队列;
2)发送端根据预设条件执行发送动作;
3)发送端根据数据是否发送成功执行对应的动作:所述数据发送成功时,发送端根据该条数据的ID执行更新offset偏移量并进行本地保存,所述数据发送失败时,发送端将数据写入临时缓冲队列,暂停消费数据,不对offset偏移量更新,待临时缓冲队列中的数据发送成功后,再执行更新offset偏移量并进行本地保存;
4)重复步骤1)-步骤3)直至所有数据发送完毕。
具体的,本发明数据传输方法主要分为以下几个步骤来完成:
步骤1、初始化
1.1 读取配置文件,加载基础数据,数据包括:用户组ID、主题、offset偏移量、提交方式、消费队列大小、消息条数、更新周期、数据类型等。
1.2 设置异常数据回调函数。
1.3 初始化数据库连接和网络连接。
1.4 接口初始化。加载插件并获取函数地址。插件包括数据消费/生产插件、数据序列化插件、数据下载插件和数据转换插件。执行插件初始化接口。
步骤2、启动异常数据处理线程
2.1 创建并启动异常数据处理线程。
3.2 异常数据处理。解析数据类型,根据数据类型入对应缓存队列,做对应的处理。发送失败的数据入待发送数据队列;转换失败的数据入转换失败队列,落地保存。
步骤3、启动数据消费线程
3.1 创建数据消费线程,执行初始化。
3.2 设置数据接收回调函数,用于接收消费的数据。
3.3 启动数据消费线程。
3.4 数据入发送队列。消费到数据后执行反序列化操作,数据类型归一化处理,根据预设条件执行图片下载操作,数据序列化操作,写入数据发送对列。
步骤4、启动数据生产线程
4.1 创建数据生产线程,执行初始化。
4.2 设置数据发送状态通知回调函数。
4.3 发送数据。根据预设条件(时间间隔、队列大小)定时提交发送动作。
4.4 offset偏移量保存。执行发送动作后,发送状态通知回调函数中接收每条数据的发送状态。数据发送成功,根据数据标签执行保存offset偏移量到本地存储;数据发送失败,将数据写入待发送队列,暂停数据消费,不做offset偏移量更新,执行下一个周期的数据发送动作。
更具体的,如图2-3所示,分别为数据流的整体框架图和整体流程图。其中,数据包括视频片段数据、图片数据、结构化数据和非结构化数据。本发明所述的数据传输方法应用在虚线框选部分。包括初始化、数据解析、入发送队列、出发送队列、定时执行发送、回调通知发送结果、更新offset偏移量。本发明方法按照之下步骤实施:
步骤1、初始化
1.1 读取配置文件信息;
1.2 设置异常数据回调,用来捕获异常信息;
1.3 初始化数据库连接、网络连接和插件接口。
步骤2、启动异常数据处理
2.1 接收异常数据;
2.2 解析数据类型。根据数据类型写入对应缓存队列,做对应的处理。发送失败的数据入待发送数据队列;转换失败的数据执行2.3;
2.3 转换失败的数据入转换失败队列,落地保存。
步骤3、入发送队列
此步骤的流程图如图4所示。
3.1 接收异构数据。将消费到的数据解析,判断数据类型。数据类型为序列化的数据,执行3.2,否则执行3.3;
3.2 数据反序列化。根据预设条件确定是否执行图片下载操作。预设条件是下载,执行3.2,否则执行3.3;
3.3 执行图片下载操作。
3.4 执行数据清洗。
3.5 数据序列化。
3.6 入发送对列。将序列化后的数据写入发送队列。
发送队列的数据结构如图5所示,数据结构由数据类型、数据标识、数据版本、来源标识和数据信息构成。
步骤4、出发送队列
4.1 定时发送数据。根据预设条件,发送时间间隔或发送队列的大小如果满足了预设值,执行发送。不满足,则继续等待消费的异构数据写入发送队列。此步骤的流程图如图6所示。
4.2 回调通知发送状态。
执行发送动作后,数据发送状态通知以回调函数方式通知,在回调函数中接收每条数据的发送状态。数据发送成功,根据数据标签执行保存offset偏移量到本地存储;数据发送失败,将数据写入待发送队列,暂停数据消费,不做offset偏移量更新,执行下一个周期的数据发送动作。此步骤的流程图如图7所示。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种高可靠性的海量异构数据传输方法,其特征在于,包括以下步骤:
1)发送端根据本地存储上的offset偏移量从指定的索引位置进行消费数据,然后将数据写入发送队列;
2)发送端根据预设条件执行发送动作;
3)发送端根据数据是否发送成功执行对应的动作:所述数据发送成功时,发送端根据该条数据的ID执行更新offset偏移量并进行本地保存,所述数据发送失败时,发送端将数据写入临时缓冲队列,暂停消费数据,不对offset偏移量更新,待临时缓冲队列中的数据发送成功后,再执行更新offset偏移量并进行本地保存;
4)重复步骤1)-步骤3)直至所有数据发送完毕。
2.根据权利要求1所述的数据传输方法,其特征在于,步骤1)之前发送端还进行数据传输系统的初始化操作,所述初始化操作包括:
读取配置文件,加载基础数据,基础数据包括用户组ID、主题、offset偏移量、提交方式、消费队列大小、消息条数、更新周期和数据类型;
初始化数据库连接和网络连接;
加载插件并获取函数地址,插件包括数据消费插件、数据序列化插件、数据下载插件和数据转换插件,执行插件初始化接口。
3.根据权利要求1所述的数据传输方法,其特征在于,步骤3)中通过设置异常数据回调函数将发送失败的数据写入临时缓冲队列,所述异常数据回调函数还用于将转换失败的数据入转换失败队列并进行落地保存。
4.根据权利要求1所述的数据传输方法,其特征在于,步骤3)中发送端通过设置数据发送状态通知回调函数来得知数据是否成功。
5.一种高可靠性的海量异构数据传输系统,包括发送端和与所述发送端连接的至少一个接收端,其特征在于,所述发送端包括:
数据存储模块,用于存储数据;
数据调取模块,用于根据本地存储上的offset偏移量从指定的索引位置进行消费数据,然后将数据写入发送队列;
数据发送模块,用于根据预设条件执行发送动作;
数据发送状态判断模块,用于判断数据是否发送成功;
数据处理模块,包括发送数据处理模块,所述发送数据处理模块用于根据数据是否发送成功执行对应的动作:所述数据发送成功时,发送端根据该条数据的ID执行更新offset偏移量并进行本地保存,所述数据发送失败时,发送端将数据写入临时缓冲队列,暂停消费数据,不对offset偏移量更新,待临时缓冲队列中的数据发送成功后,再执行更新offset偏移量并进行本地保存。
6.根据权利要求5所述的数据传输系统,其特征在于,所述发送端还包括初始化模块,所述初始化模块包括:
数据初始化模块,用于读取配置文件,加载基础数据,基础数据包括用户组ID、主题、offset偏移量、提交方式、消费队列大小、消息条数、更新周期和数据类型;
网络初始化模块,用于初始化数据库连接和网络连接;
接口初始化模块,用于加载插件并获取函数地址,插件包括数据消费插件、数据序列化插件、数据下载插件和数据转换插件,执行插件初始化接口。
7.根据权利要求5所述的数据传输系统,其特征在于,所述数据处理模块还包括数据转换处理模块,所述数据转换处理模块用于将转换失败的数据入转换失败队列并进行落地保存。
8.根据权利要求5所述的数据传输系统,其特征在于,所述数据发送状态判断模块通过设置数据发送状态通知回调函数来得知数据是否成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810158887.5A CN108418879B (zh) | 2018-02-26 | 2018-02-26 | 一种高可靠性的海量异构数据传输方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810158887.5A CN108418879B (zh) | 2018-02-26 | 2018-02-26 | 一种高可靠性的海量异构数据传输方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108418879A true CN108418879A (zh) | 2018-08-17 |
CN108418879B CN108418879B (zh) | 2021-03-02 |
Family
ID=63129056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810158887.5A Active CN108418879B (zh) | 2018-02-26 | 2018-02-26 | 一种高可靠性的海量异构数据传输方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108418879B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111147126A (zh) * | 2019-12-26 | 2020-05-12 | 中国人民解放军空军勤务学院 | 北斗卫星短报文通信数据拆包传输方法 |
CN113849504A (zh) * | 2021-09-13 | 2021-12-28 | 重庆长安汽车股份有限公司 | 多元异构传感器数据存储和读取方法、系统及车辆 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007133484A2 (en) * | 2006-05-08 | 2007-11-22 | Chen, Chung, Chin | Method of searching a computer ip address of internet networks |
CN101155132A (zh) * | 2006-09-27 | 2008-04-02 | 中兴通讯股份有限公司 | 一种间接实时流量控制系统及其方法 |
US20100281164A1 (en) * | 1997-11-13 | 2010-11-04 | Haff Maurice W | Selective acceptance of electronic messages in communication systems |
CN104424186A (zh) * | 2013-08-19 | 2015-03-18 | 阿里巴巴集团控股有限公司 | 一种流计算应用中实现持久化的方法及装置 |
CN106789741A (zh) * | 2016-12-26 | 2017-05-31 | 北京奇虎科技有限公司 | 消息队列的消费方法及装置 |
-
2018
- 2018-02-26 CN CN201810158887.5A patent/CN108418879B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100281164A1 (en) * | 1997-11-13 | 2010-11-04 | Haff Maurice W | Selective acceptance of electronic messages in communication systems |
WO2007133484A2 (en) * | 2006-05-08 | 2007-11-22 | Chen, Chung, Chin | Method of searching a computer ip address of internet networks |
CN101155132A (zh) * | 2006-09-27 | 2008-04-02 | 中兴通讯股份有限公司 | 一种间接实时流量控制系统及其方法 |
CN104424186A (zh) * | 2013-08-19 | 2015-03-18 | 阿里巴巴集团控股有限公司 | 一种流计算应用中实现持久化的方法及装置 |
CN106789741A (zh) * | 2016-12-26 | 2017-05-31 | 北京奇虎科技有限公司 | 消息队列的消费方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111147126A (zh) * | 2019-12-26 | 2020-05-12 | 中国人民解放军空军勤务学院 | 北斗卫星短报文通信数据拆包传输方法 |
CN111147126B (zh) * | 2019-12-26 | 2021-11-23 | 中国人民解放军空军勤务学院 | 北斗卫星短报文通信数据拆包传输方法 |
CN113849504A (zh) * | 2021-09-13 | 2021-12-28 | 重庆长安汽车股份有限公司 | 多元异构传感器数据存储和读取方法、系统及车辆 |
Also Published As
Publication number | Publication date |
---|---|
CN108418879B (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA1277382C (en) | Inter-processor communication protocol | |
CN101504617B (zh) | 一种基于处理器共享内存的数据发送方法及装置 | |
TWI261166B (en) | Free list and ring data structure management | |
US7505410B2 (en) | Method and apparatus to support efficient check-point and role-back operations for flow-controlled queues in network devices | |
US6757791B1 (en) | Method and apparatus for reordering packet data units in storage queues for reading and writing memory | |
CN103905300B (zh) | 一种数据报文发送方法、设备及系统 | |
CN104092717B (zh) | 消息处理方法及系统、消息目的端设备 | |
CN102197384A (zh) | 用于改进串行端口存储器通信等待时间和可靠性的方法和系统 | |
CN110532205B (zh) | 数据传输方法、装置、计算机设备和计算机可读存储介质 | |
CN107527317A (zh) | 基于图像处理的数据传输系统 | |
CN106325758B (zh) | 一种队列存储空间管理方法及装置 | |
CN108769099A (zh) | 一种消息中间件的消息去重的实现方法 | |
CN111221759B (zh) | 一种基于dma的数据处理系统及方法 | |
US6735620B1 (en) | Efficient protocol for retransmit logic in reliable zero copy message transport | |
CN108418879A (zh) | 一种高可靠性的海量异构数据传输方法及系统 | |
CN106713470A (zh) | 一种分布式缓存更新方法及缓存更新系统 | |
CN111538694B (zh) | 一种用于网络接口支持多链接和重传的数据缓存方法 | |
US7843830B1 (en) | Resilient retransmission of epoch data | |
CN109246036A (zh) | 一种处理分片报文的方法和装置 | |
CN101470636A (zh) | 一种消息的读写方法和装置 | |
EP2869503A1 (en) | Multicast message replication method and device | |
CN107025184A (zh) | 一种数据管理方法及装置 | |
CN111225063B (zh) | 用于静态分布式计算架构的数据交换系统及其方法 | |
US8601069B1 (en) | Method and apparatus for message multicasting | |
CN105912273B (zh) | 一种报文共享储存管理的fpga实现方法 |
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 |