基于Kafka组件的数据传输方法及系统与流程

文档序号:27147288发布日期:2021-10-30 01:54阅读:237来源:国知局
基于Kafka组件的数据传输方法及系统与流程
基于kafka组件的数据传输方法及系统
技术领域
1.本发明涉及通信技术领域,尤其涉及一种基于kafka组件的数据传输方法及系统。


背景技术:

2.随着大数据量的实验环境和更高性能的传感器的发展,大量的数据需要进行处理和传输。
3.传统的数据传输系统分为两种,实时数据传输和非实时数据传输。其中,传统实时数据传输系统当接收数据量超过处理能力时堆积缓存来暂存数据,容易造成丢包或者内存溢出,影响系统的正常功能;非实时传输系统由于数据延迟,许多数据应用无法支撑,无法充分将数据利用。
4.因此,现有的数据传输方法不能满足大批量数据的稳定传输。


技术实现要素:

5.本发明所要解决的技术问题是针对现有技术的不足,提供一种基于kafka组件的数据传输方法及系统。
6.本发明解决上述技术问题的技术方案如下:
7.一种基于kafka组件的数据传输方法,所述kafka组件包括:producer组件、broker组件和consumer组件,所述broker组件包括每种类型数据的至少一个主题,所述数据传输方法包括:
8.数据采集装置获取待传输的原始数据;
9.数据处理装置提取所述原始数据的关键信息;
10.所述producer组件根据所述原始数据的类型,将所述原始数据和所述关键信息发送至对应类型的broker组件的不同主题中缓存;
11.用户终端使用所述consumer组件从broker组件的对应主题中获取所述关键信息,根据所述关键信息判断是否获取所述原始数据。
12.本发明解决上述技术问题的另一种技术方案如下:
13.一种基于kafka组件的数据传输系统,所述kafka组件包括:producer组件、broker组件和consumer组件,所述broker组件包括每种类型数据的至少一个主题,所述数据传输系统包括:
14.数据采集装置,用于获取待传输的原始数据;
15.数据处理装置,用于提取所述原始数据的关键信息;
16.所述producer组件用于根据所述原始数据的类型,将所述原始数据和所述关键信息发送至对应类型的broker组件的不同主题中缓存;
17.用户终端,用于使用所述consumer组件从broker组件的对应主题中获取所述关键信息,根据所述关键信息判断是否获取所述原始数据。
18.本发明的有益效果是:本发明提供的数据传输方法及系统,适用于大量数据的高
效高质量传输,通过提取数据的关键信息,相当于对原始数据的高效简化,能满足数据质量要求,再根据数据类型将数据分类存入kafka broker的不同主题,由于kafka具备高吞吐量的特性,可以满足每秒百万级别消息的生产和消费,优于传统数据库,而broker又可以持久化数据,没有内存压力,因此可作为实时性能极强的数据存储中心,缓存数据,各应用部门可以根据业务要求按类别取用,kafka的高吞吐量性能可以满足大规模数据传输是的实时性要求,而关键信息提取相当于对原始数据的高效简化,满足数据质量要求,数据传输链路的缩短也增加了系统的稳定性。
19.本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
20.图1为本发明数据传输方法的实施例提供的流程示意图;
21.图2为本发明数据传输系统的实施例提供的结构框架示意图。
具体实施方式
22.以下结合附图对本发明的原理和特征进行描述,所举实施例只用于解释本发明,并非用于限定本发明的范围。
23.kafka是一种分布式发布

订阅消息系统,使用scala语言编写,之后成为apache项目的一部分。kafka消息系统主要由生产者producer、代理者broker和消费者consumer组成。生产者producer负责产生消息发送给代理者broker,代理者broker对消息做暂时存储,之后转发给消费者consumer,消费者consumer接收并处理消息。
24.基于此,本技术提出了一种基于kafka组件的数据传输方法,下面进一步说明。
25.如图1所示,为本发明数据传输方法的实施例提供的流程,该数据传输方法基于kafka组件实现,kafka组件包括:producer组件、broker组件和consumer组件,broker组件包括每种类型数据的至少一个主题,数据传输方法包括:
26.s1,数据采集装置获取待传输的原始数据;
27.需要说明的是,原始数据可以为需要存储的来自传感器、试验设备、监控设备等装置或仪器的数据,数据采集装置需要确定发送接收端的ip和端口,通过网络收集特定的信息。
28.例如,以图像监控设备采集的车辆监控信息为例,原始数据可以包括:图像监控设备本身的状态信息,如温度和使用率等,车辆的类型,如机动或非机动等、车辆的基本信息,如车牌号和车辆高度等,车辆的运动信息,如速度和方向等,车辆的外观信息,如颜色直方图、深度学习提取特征和光流信息等,车辆的位置信息,如区域内坐标位置。
29.可选地,数据采集装置可以通过硬件或软件的方式实现,如果是硬件实现,可以将处理器芯片、无线通信单元和通信接口封装成一个独立的采集装置,处理器芯片执行数据的接收和处理功能,通过通信接口和数据线与传感器、试验设备、监控设备等装置或仪器的通信接口连接,从而获取传感器、试验设备、监控设备等装置或仪器的数据,也可以通过无线通信单元以wifi、4g/5g、nfc或zigbee等无线通信方法与传感器、试验设备、监控设备等装置或仪器建立无线通信链路,进而获取数据。如果是软件实现,可以在传感器、试验设备、
监控设备等装置或仪器的处理器中写入相应的程序,将获取的数据直接发送给数据处理装置。
30.例如,数据采集装置监听一个特定端口(8888),发送方在具备权限的条件下向该端口发送数据,软件收到的数据即为原始数据。
31.应理解,为便于后续处理,原始数据格式必须为服务器端已知,并能明确区分类型。
32.s2,数据处理装置提取原始数据的关键信息;
33.需要说明的是,关键信息指的是预先设定的数据的属性信息,优选地,可以包括唯一性标识和一些必要的属性信息,例如,关键信息可以包括数据的id,发送方,发送时间,接收时间和内容大小等。同时根据关键信息给该数据分配指定的类型,以备在后续步骤中推送至kafka组件。
34.可选地,数据处理装置接收到原始数据后,可以解析后提取以下信息:原始数据的类型(信息1/信息2/...),标识(使用原始数据中的id信息或根据时间+类型编制id),发送时间和接收时间(****/**/**,时分秒),长度为256字节,其中,根据时间+类型编制id应与原始数据id一致或具有唯一相关性。
35.例如,从中提取的关键信息包括该数据的类型(行人/机动车/非机动车/...),标识(车牌号、行人id),发送时间和接收时间(20**/0*/**,时分秒),长度为**字节。
36.可选地,数据处理装置可以适用udp/tcp报文接受协议,能被接入且解析成功的即为有效原始数据。
37.通过提取数据的关键信息,能够准确对接收到数据进行高效利用,满足速度和准确性的需求。
38.s3,producer组件根据原始数据的类型,将原始数据和关键信息发送至对应类型的broker组件的不同主题中缓存;
39.应理解,kafka组件需要提前建立至少一个不同主题的broker,以4个主题为例进行说明,对于每个类型的数据,都建立4个主题,在数据处理装置提取完关键信息后,将数据和关键信息分别发送至对应类型数据的对应主题的broker中存储。
40.应理解,broker组件的主题可以根据实际需求设置,例如,假设用户终端可能为本地端和远端,都有调取数据的需求,那么可以设置成4个主题,分别是本地关键信息主题、本地原始数据主题、远端关键信息主题和远端原始数据主题,分别存储用于供本地端调取的本地关键信息、供本地端调取的本地原始数据、供远端调取的关键信息和供远端调取的原始数据。
41.又例如,如果数据仅供本地端调取,那么主题也可以设置成2个,即关键信息主题和原始数据数据。
42.s4,用户终端使用consumer组件从broker组件的对应主题中获取关键信息,根据关键信息判断是否获取原始数据。
43.具体地,用户终端使用consumer组件从broker组件的对应主题中获取关键信息,如果关键信息中的内容不再满足使用要求,用户可以从broker组件中缓存的原始数据中拉取数据进行分析。
44.根据数据类型可以将数据分类存入broker组件的不同主题,由于kafka具备高吞
吐量的特性,可以满足每秒百万级别消息的生产和消费,而broker又可以持久化数据,没有内存压力,因此可作为实时性能极强的数据存储中心,缓存数据。对于不同主题中的数据,关键信息数据会被接近于实时消费掉,而原始数据内容会被缓存,用户可以根据实际使用需求配置broker中原始数据的缓存时长。
45.通过使用consumer组件从broker组件的对应主题中拉取关键信息,在根据实际需求和关键信息判断是否将原始数据拉取到本地,降低了数据库的存储压力,提高了数据使用效率,同时用户可以在broker组件设置数据自动删除规则,根据需求设置数据删除是时间,例如,可以设置对超过10天的数据进行自动删除。
46.本实施例提供的数据传输方法,适用于大量数据的高效高质量传输,通过提取数据的关键信息,相当于对原始数据的高效简化,能满足数据质量要求,再根据数据类型将数据分类存入kafka broker的不同主题,由于kafka具备高吞吐量的特性,可以满足每秒百万级别消息的生产和消费,优于传统数据库,而broker又可以持久化数据,没有内存压力,因此可作为实时性能极强的数据存储中心,缓存数据,各应用部门可以根据业务要求按类别取用,kafka的高吞吐量性能可以满足大规模数据传输是的实时性要求,而关键信息提取相当于对原始数据的高效简化,满足数据质量要求,数据传输链路的缩短也增加了系统的稳定性。
47.可选地,在一些可能的实施方式中,producer组件根据原始数据的类型,将原始数据和关键信息发送至对应类型的broker组件的不同主题中缓存,具体包括:
48.producer组件根据原始数据的类型,将原始数据和关键信息发送至对应类型的broker组件的4个主题中缓存,4个主题分别为:本地关键信息主题、本地原始数据主题、远端关键信息主题和远端原始数据主题,其中,本地关键信息主题和远端关键信息主题存储的内容相同,本地关键信息主题用于存储面向本地的关键信息,远端关键信息主题用于存储面向远端的关键信息;本地原始数据主题和远端原始数据主题存储的内容相同,本地原始数据主题用于存储面向本地的原始数据,远端原始数据主题用于存储面向远端的原始数据。
49.可选地,在一些可能的实施方式中,用户终端使用consumer组件从broker组件的对应主题中获取关键信息,根据关键信息判断是否获取原始数据,具体包括:
50.当用户终端为本地端时,本地程序使用consumer组件从broker组件的本地关键信息主题中取出关键信息存入本地数据库;
51.当用户终端为远端时,远端程序使用consumer组件从broker组件的远端关键信息主题中取出关键信息存入远端数据中心。
52.可选地,在一些可能的实施方式中,当用户终端为本地端时,还包括:
53.当业务逻辑发生变化时,本地程序使用consumer组件从broker组件的本地原始数据主题中取出原始数据进行解析。
54.例如,业务逻辑发生变化可以为:比如实际业务需要新增关键信息字段——机动车白天是否超速行驶,则可以使用consumer组件从本地白天机动车原始数据broker组件中取出数据进行解析填充。
55.需要说明的是,本地端通过consumer将数据关键信息存入本地数据库,使用关键信息中进行数据分析与应用,如果关键信息中的内容不再满足使用要求,本地端可以从
kafka broker中缓存的原始数据中拉取数据进行分析。由于各个数据应用部门业务成熟后对于数据关键信息的定义趋于标准化,原始数据被使用到的概率越来越小,在大规模的消息传输中存至数据库会造成性能损耗和资源浪费,因此在broker组件中按照配置时长暂存会成为更好的选择。
56.可选地,在一些可能的实施方式中,当用户终端为远端时,还包括:
57.当需要查询看新的数据字段时,远端程序使用consumer组件从broker组件的远端原始数据主题中取出原始数据进行解析。
58.例如,业务逻辑发生变化可以为:当需要查看新的数据字段时——机动车白天是否超速行驶,则可以使用consumer从远程白天机动车原始数据broker中取出数据进行解析填充。
59.需要说明的是,远端通过consumer将数据关键信息存入远端数据中心,使用关键信息中进行数据分析与应用,如果关键信息中的内容不再满足使用要求,远端可以从broker组件中缓存的原始数据中拉取数据进行分析。通常远端数据中心对于数据也会有实时性要求,因此通过写入读取数据库的方式会增加数据传输时延,在大规模消息传输时问题会更加明显。而kafka的高吞吐量性能可以满足大规模消息传输是的实时性要求,而关键信息提取相当于对原始数据的高效简化,满足数据质量要求。数据传输链路的缩短也增加了系统的稳定性。
60.可以理解,在一些实施例中,可以包含如上述各实施方式中的部分或全部。
61.如图2所示,为本发明数据传输系统的实施例提供的结构框架示意图,该数据传输系统基于kafka组件实现,kafka组件30包括:producer组件31、broker组件32和consumer组件33,broker组件32包括每种类型数据的至少一个主题,数据传输系统包括:
62.数据采集装置10,用于获取待传输的原始数据;
63.数据处理装置20,用于提取原始数据的关键信息;
64.producer组件31用于根据原始数据的类型,将原始数据和关键信息发送至对应类型的broker组件32的不同主题中缓存;
65.用户终端40,用于使用consumer组件33从broker组件32的对应主题中获取关键信息,根据关键信息判断是否获取原始数据。
66.本实施例提供的数据传输系统,适用于大量数据的高效高质量传输,通过提取数据的关键信息,相当于对原始数据的高效简化,能满足数据质量要求,再根据数据类型将数据分类存入kafka broker的不同主题,由于kafka具备高吞吐量的特性,可以满足每秒百万级别消息的生产和消费,优于传统数据库,而broker又可以持久化数据,没有内存压力,因此可作为实时性能极强的数据存储中心,缓存数据,各应用部门可以根据业务要求按类别取用,kafka的高吞吐量性能可以满足大规模数据传输是的实时性要求,而关键信息提取相当于对原始数据的高效简化,满足数据质量要求,数据传输链路的缩短也增加了系统的稳定性。
67.可选地,在一些可能的实施方式中,producer组件31具体用于根据原始数据的类型,将原始数据和关键信息发送至对应类型的broker组件的4个主题中缓存,4个主题分别为:本地关键信息主题、本地原始数据主题、远端关键信息主题和远端原始数据主题,其中,本地关键信息主题和远端关键信息主题存储的内容相同,本地关键信息主题用于存储面向
本地的关键信息,远端关键信息主题用于存储面向远端的关键信息;本地原始数据主题和远端原始数据主题存储的内容相同,本地原始数据主题用于存储面向本地的原始数据,远端原始数据主题用于存储面向远端的原始数据。
68.可选地,在一些可能的实施方式中,当用户终端40为本地端时,用户终端40具体用于调用本地程序使用consumer组件33从broker组件32的本地关键信息主题中取出关键信息存入本地数据库;
69.当用户终端40为远端时,用户终端40具体用于调用远端程序使用consumer组件33从broker组件32的远端关键信息主题中取出关键信息存入远端数据中心。
70.可选地,在一些可能的实施方式中,当用户终端40为本地端时,用户终端40还用于当业务逻辑发生变化时,本地程序使用consumer组件33从broker组件32的本地原始数据主题中取出原始数据进行解析。
71.可选地,在一些可能的实施方式中,当用户终端40为远端时,用户终40端还用于当需要查询看新的数据字段时,远端程序使用consumer组件33从broker组件32的远端原始数据主题中取出原始数据进行解析。
72.可以理解,在一些实施例中,可以包含如上述各实施方式中的部分或全部。
73.需要说明的是,上述各实施方式是与在先方法实施例对应的产品实施例,对于产品实施方式的说明可以参考上述各方法实施方式中的对应说明,在此不再赘述。
74.读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
75.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例仅仅是示意性的,例如,步骤的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个步骤可以结合或者可以集成到另一个步骤,或一些特征可以忽略,或不执行。
76.上述方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
77.以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1