CN108418879A - 一种高可靠性的海量异构数据传输方法及*** - Google Patents

一种高可靠性的海量异构数据传输方法及*** Download PDF

Info

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
Application number
CN201810158887.5A
Other languages
English (en)
Other versions
CN108418879B (zh
Inventor
王小虎
王夷
刘其峰
李菲菲
王丹
杨波
段智伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinjiang Xi Ling Information Technology Ltd By Share Ltd
Original Assignee
Xinjiang Xi Ling Information Technology Ltd By Share Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xinjiang Xi Ling Information Technology Ltd By Share Ltd filed Critical Xinjiang Xi Ling Information Technology Ltd By Share Ltd
Priority to CN201810158887.5A priority Critical patent/CN108418879B/zh
Publication of CN108418879A publication Critical patent/CN108418879A/zh
Application granted granted Critical
Publication of CN108418879B publication Critical patent/CN108418879B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Communication Control (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所述的数据传输***,其特征在于,所述数据发送状态判断模块通过设置数据发送状态通知回调函数来得知数据是否成功。
CN201810158887.5A 2018-02-26 2018-02-26 一种高可靠性的海量异构数据传输方法及*** Active CN108418879B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 北京奇虎科技有限公司 消息队列的消费方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
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) 消息处理方法及***、消息目的端设备
CN101504617A (zh) 一种基于处理器共享内存的数据发送、接收方法及装置
CN102197384A (zh) 用于改进串行端口存储器通信等待时间和可靠性的方法和***
CN110532205B (zh) 数据传输方法、装置、计算机设备和计算机可读存储介质
CN107527317A (zh) 基于图像处理的数据传输***
CN108769099A (zh) 一种消息中间件的消息去重的实现方法
TW201237632A (en) Buffer management scheme for a network processor
CN111221759B (zh) 一种基于dma的数据处理***及方法
US6735620B1 (en) Efficient protocol for retransmit logic in reliable zero copy message transport
CN108418879A (zh) 一种高可靠性的海量异构数据传输方法及***
CN101470636B (zh) 一种消息的读写方法和装置
CN110740145A (zh) 消息消费方法、装置、存储介质及电子设备
CN106713470A (zh) 一种分布式缓存更新方法及缓存更新***
CN109117386A (zh) 一种网络远程读写二级存储的***及方法
CN111538694B (zh) 一种用于网络接口支持多链接和重传的数据缓存方法
US7843830B1 (en) Resilient retransmission of epoch data
EP2869503A1 (en) Multicast message replication method and device
CN107025184A (zh) 一种数据管理方法及装置
US20130061247A1 (en) Processor to message-based network interface using speculative techniques
CN111225063B (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