CN112929430A - 一种基于物联网通信的数据传输方法及系统 - Google Patents
一种基于物联网通信的数据传输方法及系统 Download PDFInfo
- Publication number
- CN112929430A CN112929430A CN202110127972.7A CN202110127972A CN112929430A CN 112929430 A CN112929430 A CN 112929430A CN 202110127972 A CN202110127972 A CN 202110127972A CN 112929430 A CN112929430 A CN 112929430A
- Authority
- CN
- China
- Prior art keywords
- message
- messages
- partition
- cached
- server
- 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
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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- 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/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- 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
Abstract
本发明提出一种基于物联网通信的数据传输方法及系统,其是基于防火墙端口映射的Kafka数据传输的,对承载消息的Partition的分配,不仅考虑了负荷的均衡,还考虑了被分配的消息在自身属性上的相关性,将相关性高的消息分配给不同的Partition进行承担,从而合理高效地解决了Partition之间的消息分配问题,能够实现消息被读取所带来的负荷的均衡化分布,并且通过防火墙端口映射的机制,实现了针对同一个消息的读取请求在主副Partition之间的均衡,也抑制部分Partition过闲的现象存在,适应物联网系统海量级并发消息读取的特点。
Description
技术领域
本发明涉及物联网通信技术,具体是基于防火墙端口映射的Kafka数据传输方法及系统。
背景技术
当前,物联网技术方兴未艾,每个物体均可以作为物联网的一个节点,物与物之间的信息联通为很多应用场景的实现奠定了通信基础,从而为人类生产、生活方面的改善提供了便利和帮助。
目前,物联网节点之间的通信一般以消息型数据为主,因此需要建立一套有效的消息传输、分发与存取机制。Kafka体系是一个分布式的、易扩展的、安全性高的消息服务系统。如图1所示,Kafka体系包括消息的Producer节点、Consumer节点以及Kafka服务器集群。Producer节点向Kafka服务器集群发送消息,而Consumer节点通过与Kafka服务器集群建立长连接的方式,不断地从Kafka服务器集群中拉取消息,然后可以对这些消息进行处理。其中,消息被分类为不同的主题即Topic,图1中两个Producer节点向Kafka服务器集群发送了主题为Topic1的消息,另外一个Producer节点则向Kafka服务器集群发送了主题为Topic2的消息。Consumer节点则可以只拉取自己订阅的Topic下的消息,例如一个Consumer节点订阅了关于Topic1的消息,而另外两个Consumer节点则订阅了关于Topic2的消息。在物联网的应用中,可以将前端的物联网节点作为Kafka体系的Producer节点,后台服务器构建Kafka服务器集群,且获取和分析物联网数据的各种应用程序作为Consumer节点,从而以Kafka消息的格式实现物联网数据从前端物联网节点到应用程序的传输。
Kafka服务器集群可以包括多个服务器,每个服务器称之为一个Broker,且每个主题Topic被划分为一定数量的分区Partition,每个服务器Broker可以承载多个主题Topic,且针对每个主题Topic只承担一部分分区Partition,Kafka服务器集群会将接收到的消息按照该消息所属的主题Topic分配到该主题对应的分区Partition中存储,以备Consumer节点拉取该消息。
为了增强系统的稳定性,可以将每个主题Topic的每个分区Partition备份预定的份数,放在多个服务器Broker上存储。每个分区Partition对应的多个服务器Broker中一个Broker为Leader Broker,其余Broker为Follower Broker,由Leader Broker负责针对该分区内的消息的读取,而Follower Broker保持该分区内消息与Leader Broker的同步,当Leader Broker失效时可以从Follower Broker中选出新的Leader Broker。
然而,目前的Kafka体系中,同一时间只有单一的服务器Broker负责Topic的一个分区Partition的消息读取,但事实上物联网环境下可能存在海量应用需要对消息进行读取,则该单一Broker所承担的消息读取负荷过重,超出了其处理能力,有可能造成消息读取的延迟过大。由此,在Kafka的体系中,希望将对Topic的某个分区Partition的消息读取负荷由集群中存储该Partition的各个Broker分担。
另外,对于一个主题Topic的多个分区Partition,应该如何将该Topic的消息在各个分区Partition之间进行分配。对于这个问题,目前现有技术中多采用固定映射规则或者随机均衡映射规则来进行分配,固定映射规则即由消息的Producer节点指定将该消息分配给其中一个Partition,而随机均衡映射规则则是随机将消息分配给该Topic下的一个Partition,其原则是使各个Partition承载的消息数量均衡。然而,以上两种方式都未能考虑到消息读取过程中负荷的非均衡问题,导致部分Partition所存储的消息的读取负荷明显多于其它Partition存储的消息,情况严重时又会造成部分Partition读取负荷的过载。
发明内容
鉴于上述现有技术中存在的以上问题,本发明提出一种基于防火墙端口映射的Kafka数据传输方法及系统。本发明旨在解决采用Kafka体系的物联网消息系统当中,对于消息的读取负荷难于在同一Topic下的Partition之间合理高效分配的问题,以及针对同一个Partition的消息读取负荷被集中在作为Leader Broker的服务器上的问题。
根据本发明的上述方案,提供了一种基于物联网通信的数据传输方法,其是基于防火墙端口映射的Kafka数据进行传输,其特征在于,包括:
通过Kafka服务器集群接收Producer节点上传的属于特定Topic的消息;
由Kafka服务器集群中的消息缓存和解析服务器缓存所述消息,并且解析该消息生成该消息的属性标识符;
为Kafka服务器集群中的每一个Partition生成并存储一个消息分配记录表,消息分配记录表记录了该Partition上承担的每个消息的相关信息,所述相关信息中包括每个消息的属性标识符;
实时获得每一个Partition对应的存储消息数以及Broker服务器处理能力分配参数,并通过对应每一个Partition的能力状态列表对各个Partition消息接收能力参数进行保存;
统计所述消息缓存和解析服务器当前缓存的消息数量;通过查询所述能力状态列表获得每个Partition的消息接收能力参数;
根据所述当前缓存的消息数量以及每个Partition的消息接收能力参数,决定每一个Partition承担的缓存消息数量;
按照每一个Partition承担的缓存消息数量,生成将缓存的消息分派给Partition的分配方案;
根据所述分配方案,将消息缓存和解析服务器中缓存的消息传输给相应的Partition进行存储,以及更新该Partition对应的消息分配记录表;
Kafka服务器集群通过防火墙外部端口接收Consumer节点关于拉取消息的请求,并根据Kafka服务器集群中各Broker服务器的实时负荷,确定响应该请求的Broker服务器,并将该请求映射到该Broker服务器的内部端口。
优选的是,在按照每一个Partition承担的缓存消息数量生成分配方案时,还进一步获得缓存的消息的属性标识符;根据属性标识符,确定缓存的消息之间的属性相关度,从而使被分配在同一个Partition的消息之间的属性相关度最小化,生成分配在同一个Partition上的消息组。
优选的是,在按照每一个Partition承担的缓存消息数量生成分配方案时,还进一步获得缓存的消息的属性标识符;根据消息的属性标识符以及每个Partition的消息分配记录表,确定缓存的消息与Partition上的消息之间的属性相关度,从而使缓存的消息与被分配的Partition上的消息之间的属性相关度最小化,确定缓存的消息所分配的Partition。
进一步优选的是,为缓存的消息所生成的属性标识符包括消息源标识符与关键值标识符;其中,由同一个Producer节点所生成的消息具有相同的消息源标识符;以及,分析每个消息,从中提取关键值作为关键值标识符。
进一步优选的是,确定每两个缓存的消息之间的属性相关度,可按下述公式进行确定:
R=a1·S+a2·K
其中R是表示两个消息之间的属性相关度的量化参数;S是根据两个消息的消息源标识符评估的相关度量化参数;K表示根据两个消息的关键值标识符的重合度所评估的相关度量化参数,a1与a2是加权求和系数。
进而,本发明提供了一种基于物联网通信的数据传输系统,其是基于防火墙端口映射的Kafka数据进行传输,其特征在于,包括:
至少一个Producer节点,用于上传属于特定Topic的消息;
Kafka服务器集群,包括消息缓存和解析服务器、防火墙模块以及至少一个Broker服务器;
所述消息缓存和解析服务器用于缓存所述消息,并且解析该消息生成该消息的属性标识符;为Kafka服务器集群中的每一个Partition生成并存储一个消息分配记录表,消息分配记录表记录了该Partition上承担的每个消息的相关信息,所述相关信息中包括每个消息的属性标识符;实时获得每一个Partition对应的存储消息数以及Broker服务器处理能力分配参数,并通过对应每一个Partition的能力状态列表对各个Partition消息接收能力参数进行保存;统计所述消息缓存和解析服务器当前缓存的消息数量;通过查询所述能力状态列表获得每个Partition的消息接收能力参数;根据所述当前缓存的消息数量以及每个Partition的消息接收能力参数,决定每一个Partition承担的缓存消息数量;按照每一个Partition承担的缓存消息数量,生成将缓存的消息分派给Partition的分配方案;根据所述分配方案,将消息缓存和解析服务器中缓存的消息传输给相应的Partition进行存储,以及更新该Partition对应的消息分配记录表;
至少一个Broker服务器,用于承载至少一个主题Topic的Partition,通过Partition接收和存储消息缓存和解析服务器中缓存的消息,以及响应Consumer节点关于拉取消息的请求而向Consumer节点传输消息;
Kafka服务器集群通过防火墙模块的外部端口接收Consumer节点关于拉取消息的请求,并根据Kafka服务器集群中各Broker服务器的实时负荷,确定响应该请求的Broker服务器,防火墙模块将该请求映射到该Broker服务器的内部端口。
优选的是,所述消息缓存和解析服务器在按照每一个Partition承担的缓存消息数量生成分配方案时,还进一步获得缓存的消息的属性标识符;根据属性标识符,确定缓存的消息之间的属性相关度,从而使被分配在同一个Partition的消息之间的属性相关度最小化,生成分配在同一个Partition上的消息组。
优选的是,所述消息缓存和解析服务器在按照每一个Partition承担的缓存消息数量生成分配方案时,还进一步获得缓存的消息的属性标识符;根据消息的属性标识符以及每个Partition的消息分配记录表,确定缓存的消息与Partition上的消息之间的属性相关度,从而使缓存的消息与被分配的Partition上的消息之间的属性相关度最小化,确定缓存的消息所分配的Partition。
进一步优选的是,所述消息缓存和解析服务器为缓存的消息所生成的属性标识符包括消息源标识符与关键值标识符;其中,由同一个Producer节点所生成的消息具有相同的消息源标识符;以及,分析每个消息,从中提取关键值作为关键值标识符。
进一步优选的是,所述消息缓存和解析服务器确定每两个缓存的消息之间的属性相关度,可按下述公式进行确定:
R=a1·S+a2·K
其中R是表示两个消息之间的属性相关度的量化参数;S是根据两个消息的消息源标识符评估的相关度量化参数;K表示根据两个消息的关键值标识符的重合度所评估的相关度量化参数,a1与a2是加权求和系数。
从而,在本发明提出的基于防火墙端口映射的Kafka数据传输方法及系统当中,对承载消息的Partition的分配,不仅考虑了负荷的均衡,还考虑了被分配的消息在自身属性上的相关性,将相关性高的消息分配给不同的Partition进行承担,从而合理高效地解决了Partition之间的消息分配问题,能够实现消息被读取所带来的负荷的均衡化分布,并且通过防火墙端口映射的机制,实现了针对同一个消息的读取请求在主副Partition之间的均衡,也抑制部分Partition过闲的现象存在,适应物联网系统海量级并发消息读取的特点。
说明书附图
图1是现有Kafka系统的总体架构示意图;
图2是本发明所述基于防火墙端口映射的Kafka数据传输系统架构示意图。
具体实施方式
下面通过实施例,对本发明的技术方案做进一步具体的说明。
图2是本发明所述基于物联网通信的数据传输系统,其是基于防火墙端口映射的Kafka数据进行传输。包括:
至少一个Producer节点,用于上传属于特定Topic的消息;
Kafka服务器集群,包括消息缓存和解析服务器、防火墙模块以及至少一个Broker服务器;
所述消息缓存和解析服务器用于缓存所述消息,并且解析该消息生成该消息的属性标识符;为Kafka服务器集群中的每一个Partition生成并存储一个消息分配记录表,消息分配记录表记录了该Partition上承担的每个消息的相关信息,所述相关信息中包括每个消息的属性标识符;实时获得每一个Partition对应的存储消息数以及Broker服务器处理能力分配参数,并通过对应每一个Partition的能力状态列表对各个Partition消息接收能力参数进行保存;统计所述消息缓存和解析服务器当前缓存的消息数量;通过查询所述能力状态列表获得每个Partition的消息接收能力参数;根据所述当前缓存的消息数量以及每个Partition的消息接收能力参数,决定每一个Partition承担的缓存消息数量;按照每一个Partition承担的缓存消息数量,生成将缓存的消息分派给Partition的分配方案;根据所述分配方案,将消息缓存和解析服务器中缓存的消息传输给相应的Partition进行存储,以及更新该Partition对应的消息分配记录表;
至少一个Broker服务器,用于承载至少一个主题Topic的Partition,通过Partition接收和存储消息缓存和解析服务器中缓存的消息,以及响应Consumer节点关于拉取消息的请求而向Consumer节点传输消息;
Kafka服务器集群通过防火墙模块的外部端口接收Consumer节点关于拉取消息的请求,并根据Kafka服务器集群中各Broker服务器的实时负荷,确定响应该请求的Broker服务器,防火墙模块将该请求映射到该Broker服务器的内部端口。
具体来说,所述消息缓存和解析服务器缓存从Producer节点接收的每条所述消息,并且解析该消息生成该消息的属性标识符;为Kafka服务器集群中的每一个Partition生成并存储一个消息分配记录表,消息分配记录表记录了该Partition上承担的每个消息的相关信息,所述相关信息中包括每个消息的属性标识符,从而,当后续将每条消息分配给对应的Partition的时候,就更新该Partition对应的消息分配记录表。
所述消息缓存和解析服务器缓存解析消息生成的属性标识符包括消息源标识符和关键值标识符;消息源标识符标记了每条消息的Producer节点来源,而关键值标识符则以键值对的方式记录了每条消息的关键值类型及其关键值数值。
消息缓存和解析服务器具有对每个Partition对应的存储消息数以及Broker服务器处理能力分配参数的监测能力。消息缓存和解析服务器实时从集群的各Broker服务器获得每个服务器上的Partition能力状态列表,并通过能力状态列表对每个Partition的消息接收能力参数进行保存,每个Partition的消息接收能力参数是由每一个Partition对应的存储消息数以及Broker服务器针对该Partition的处理能力分配参数决定的,根据Broker服务器为每个Partition分配的可用计算能力、可用内存空间、可用传输带宽,按照每个消息的接收、存储和读取平均占用的计算能力、内存空间以及传输带宽,计算该Partition的最大存储消息数,进而通过减去每个Partition对应的存储消息数,获得每个Partition的消息接收能力参数。
进而,所述消息缓存和解析服务器统计当前缓存的消息数量;通过查询所述能力状态列表获得每个Partition的消息接收能力参数;根据所述当前缓存的消息数量以及每个Partition的消息接收能力参数,决定每一个Partition承担的缓存消息数量;按照每一个Partition承担的缓存消息数量,生成将缓存的消息分派给Partition的分配方案。
并且,所述消息缓存和解析服务器在按照每一个Partition承担的缓存消息数量生成分配方案时,还进一步获得缓存的消息的属性标识符;根据属性标识符,确定缓存的消息之间的属性相关度,从而使被分配在同一个Partition的消息之间的属性相关度最小化,生成分配在同一个Partition上的消息组。或者,作为另一种方案,所述消息缓存和解析服务器在按照每一个Partition承担的缓存消息数量生成分配方案时,还进一步获得缓存的消息的属性标识符;根据消息的属性标识符以及每个Partition的消息分配记录表,确定缓存的消息与Partition上的消息之间的属性相关度,从而使缓存的消息与被分配的Partition上的消息之间的属性相关度最小化,确定缓存的消息所分配的Partition。
其中,所述消息缓存和解析服务器确定每两个缓存的消息之间的属性相关度,可按下述公式进行确定:
R=a1·S+a2·K
其中R是表示两个消息之间的属性相关度的量化参数;S是根据两个消息的消息源标识符评估的相关度量化参数;K表示根据两个消息的关键值标识符的重合度所评估的相关度量化参数,a1与a2是加权求和系数。如果表示这两个消息的Producer节点来源的消息源标识符一致,则S取一个预定值(大于0);如果两个消息的消息源标识符不一致,则S取值为0。K表示根据两个待分配消息的关键值标识符的重合度所评估的相关度量化参数,重合度可按二者的关键值标识符中具有相同的关键值类型的关键值对总关键值数量的占比来确定,并将不同的占比区间映射为不同的预定K值;显然,具有相同的关键值类型的关键值对总关键值数量的占比越高,则K值越大。将S和K加权求和,作为R,a1与a2是加权系数。如果消息来自于有限的Producer节点,则可以降低S的加权比例,主要依靠K来计算;如果面向的是不特定的海量的Producer节点,则可以加大S的加权比例。对于确定缓存的消息与Partition上已经存储消息之间的属性相关度,可以就缓存的待分配消息和Partition上的每个消息分别按照上述公式计算属性相关度,进而求属性相关度的均值,作为最终分配方案参考的属性相关度。
根据所述分配方案,将消息缓存和解析服务器中缓存的消息传输给相应的Partition进行存储,以及更新该Partition对应的消息分配记录表。
Broker服务器通过Partition接收和存储消息缓存和解析服务器中缓存的消息,以及响应Consumer节点关于拉取消息的请求而向Consumer节点传输消息。
具体来说,Kafka服务器集群通过防火墙模块的外部端口接收Consumer节点关于拉取消息的请求,并根据Kafka服务器集群中各Broker服务器的实时负荷,确定响应该请求的Broker服务器,防火墙模块将该请求映射到该Broker服务器的内部端口。如前文所述,Kafka服务器集群会针对同一个Partition建立若干个副本,并且将Partition的主本和副本放置在不同的Broker服务器上,保持副本Partition与主本Partition的同步。对于Consumer节点关于拉取消息的请求,可以根据该请求所针对的Partition,并根据Kafka服务器集群中存储该Partition主副本的各Broker服务器的实时负荷,确定响应该请求的Broker服务器,防火墙模块将该请求映射到该Broker服务器的内部端口。从而,对于Consumer节点来说,可以按照统一的服务器地址和端口请求拉取消息,而通过防火墙进行的端口映射将该请求指向承担该读取负荷的Broker服务器的内部端口。
本发明还提供一种基于物联网通信的数据传输方法,其是基于防火墙端口映射的Kafka数据进行传输,其特征在于,包括:
通过Kafka服务器集群接收Producer节点上传的属于特定Topic的消息。
由Kafka服务器集群中的消息缓存和解析服务器缓存所述消息,并且解析该消息生成该消息的属性标识符;为缓存的消息所生成的属性标识符包括消息源标识符与关键值标识符;其中,由同一个Producer节点所生成的消息具有相同的消息源标识符;以及,分析每个消息,从中提取关键值作为关键值标识符。
为Kafka服务器集群中的每一个Partition生成并存储一个消息分配记录表,消息分配记录表记录了该Partition上承担的每个消息的相关信息,所述相关信息中包括每个消息的属性标识符。
实时获得每一个Partition对应的存储消息数以及Broker服务器处理能力分配参数,并通过对应每一个Partition的能力状态列表对各个Partition消息接收能力参数进行保存。
统计所述消息缓存和解析服务器当前缓存的消息数量;通过查询所述能力状态列表获得每个Partition的消息接收能力参数。
根据所述当前缓存的消息数量以及每个Partition的消息接收能力参数,决定每一个Partition承担的缓存消息数量。
按照每一个Partition承担的缓存消息数量,生成将缓存的消息分派给Partition的分配方案;在按照每一个Partition承担的缓存消息数量生成分配方案时,还进一步获得缓存的消息的属性标识符;根据属性标识符,确定缓存的消息之间的属性相关度,从而使被分配在同一个Partition的消息之间的属性相关度最小化,生成分配在同一个Partition上的消息组。或者,在按照每一个Partition承担的缓存消息数量生成分配方案时,还进一步获得缓存的消息的属性标识符;根据消息的属性标识符以及每个Partition的消息分配记录表,确定缓存的消息与Partition上的消息之间的属性相关度,从而使缓存的消息与被分配的Partition上的消息之间的属性相关度最小化,确定缓存的消息所分配的Partition。确定每两个缓存的消息之间的属性相关度,可按下述公式进行确定:
R=a1·S+a2·K
其中R是表示两个消息之间的属性相关度的量化参数;S是根据两个消息的消息源标识符评估的相关度量化参数;K表示根据两个消息的关键值标识符的重合度所评估的相关度量化参数,a1与a2是加权求和系数。
根据所述分配方案,将消息缓存和解析服务器中缓存的消息传输给相应的Partition进行存储,以及更新该Partition对应的消息分配记录表。
Kafka服务器集群通过防火墙外部端口接收Consumer节点关于拉取消息的请求,并根据Kafka服务器集群中各Broker服务器的实时负荷,确定响应该请求的Broker服务器,并将该请求映射到该Broker服务器的内部端口。
从而,在本发明提出的基于防火墙端口映射的Kafka数据传输方法及系统当中,对承载消息的Partition的分配,不仅考虑了负荷的均衡,还考虑了被分配的消息在自身属性上的相关性,将相关性高的消息分配给不同的Partition进行承担,从而合理高效地解决了Partition之间的消息分配问题,能够实现消息被读取所带来的负荷的均衡化分布,并且通过防火墙端口映射的机制,实现了针对同一个消息的读取请求在主副Partition之间的均衡,也抑制部分Partition过闲的现象存在,适应物联网系统海量级并发消息读取的特点。
以上实施例仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (10)
1.一种基于物联网通信的数据传输方法,其是基于防火墙端口映射的Kafka数据进行传输,其特征在于,包括:
通过Kafka服务器集群接收Producer节点上传的属于特定Topic的消息;
由Kafka服务器集群中的消息缓存和解析服务器缓存所述消息,并且解析该消息生成该消息的属性标识符;
为Kafka服务器集群中的每一个Partition生成并存储一个消息分配记录表,消息分配记录表记录了该Partition上承担的每个消息的相关信息,所述相关信息中包括每个消息的属性标识符;
实时获得每一个Partition对应的存储消息数以及Broker服务器处理能力分配参数,并通过对应每一个Partition的能力状态列表对各个Partition消息接收能力参数进行保存;
统计所述消息缓存和解析服务器当前缓存的消息数量;通过查询所述能力状态列表获得每个Partition的消息接收能力参数;
根据所述当前缓存的消息数量以及每个Partition的消息接收能力参数,决定每一个Partition承担的缓存消息数量;
按照每一个Partition承担的缓存消息数量,生成将缓存的消息分派给Partition的分配方案;
根据所述分配方案,将消息缓存和解析服务器中缓存的消息传输给相应的Partition进行存储,以及更新该Partition对应的消息分配记录表;
Kafka服务器集群通过防火墙外部端口接收Consumer节点关于拉取消息的请求,并根据Kafka服务器集群中各Broker服务器的实时负荷,确定响应该请求的Broker服务器,并将该请求映射到该Broker服务器的内部端口。
2.根据权利要求1所述的方法,其特征在于,在按照每一个Partition承担的缓存消息数量生成分配方案时,还进一步获得缓存的消息的属性标识符;根据属性标识符,确定缓存的消息之间的属性相关度,从而使被分配在同一个Partition的消息之间的属性相关度最小化,生成分配在同一个Partition上的消息组。
3.根据权利要求1所述的方法,其特征在于,在按照每一个Partition承担的缓存消息数量生成分配方案时,还进一步获得缓存的消息的属性标识符;根据消息的属性标识符以及每个Partition的消息分配记录表,确定缓存的消息与Partition上的消息之间的属性相关度,从而使缓存的消息与被分配的Partition上的消息之间的属性相关度最小化,确定缓存的消息所分配的Partition。
4.根据权利要求2或3所述的方法,其特征在于,为缓存的消息所生成的属性标识符包括消息源标识符与关键值标识符;其中,由同一个Producer节点所生成的消息具有相同的消息源标识符;以及,分析每个消息,从中提取关键值作为关键值标识符。
5.根据权利要求4所述的方法,其特征在于,确定每两个缓存的消息之间的属性相关度,可按下述公式进行确定:
R=a1·S+a2·K
其中R是表示两个消息之间的属性相关度的量化参数;S是根据两个消息的消息源标识符评估的相关度量化参数;K表示根据两个消息的关键值标识符的重合度所评估的相关度量化参数,a1与a2是加权求和系数。
6.一种基于物联网通信的数据传输系统,其是基于防火墙端口映射的Kafka数据进行传输,其特征在于,包括:
至少一个Producer节点,用于上传属于特定Topic的消息;
Kafka服务器集群,包括消息缓存和解析服务器、防火墙模块以及至少一个Broker服务器;
所述消息缓存和解析服务器用于缓存所述消息,并且解析该消息生成该消息的属性标识符;为Kafka服务器集群中的每一个Partition生成并存储一个消息分配记录表,消息分配记录表记录了该Partition上承担的每个消息的相关信息,所述相关信息中包括每个消息的属性标识符;实时获得每一个Partition对应的存储消息数以及Broker服务器处理能力分配参数,并通过对应每一个Partition的能力状态列表对各个Partition消息接收能力参数进行保存;统计所述消息缓存和解析服务器当前缓存的消息数量;通过查询所述能力状态列表获得每个Partition的消息接收能力参数;根据所述当前缓存的消息数量以及每个Partition的消息接收能力参数,决定每一个Partition承担的缓存消息数量;按照每一个Partition承担的缓存消息数量,生成将缓存的消息分派给Partition的分配方案;根据所述分配方案,将消息缓存和解析服务器中缓存的消息传输给相应的Partition进行存储,以及更新该Partition对应的消息分配记录表;
至少一个Broker服务器,用于承载至少一个主题Topic的Partition,通过Partition接收和存储消息缓存和解析服务器中缓存的消息,以及响应Consumer节点关于拉取消息的请求而向Consumer节点传输消息;
Kafka服务器集群通过防火墙模块的外部端口接收Consumer节点关于拉取消息的请求,并根据Kafka服务器集群中各Broker服务器的实时负荷,确定响应该请求的Broker服务器,防火墙模块将该请求映射到该Broker服务器的内部端口。
7.根据权利要求6所述的系统,其特征在于,所述消息缓存和解析服务器在按照每一个Partition承担的缓存消息数量生成分配方案时,还进一步获得缓存的消息的属性标识符;根据属性标识符,确定缓存的消息之间的属性相关度,从而使被分配在同一个Partition的消息之间的属性相关度最小化,生成分配在同一个Partition上的消息组。
8.根据权利要求6所述的系统,其特征在于,所述消息缓存和解析服务器在按照每一个Partition承担的缓存消息数量生成分配方案时,还进一步获得缓存的消息的属性标识符;根据消息的属性标识符以及每个Partition的消息分配记录表,确定缓存的消息与Partition上的消息之间的属性相关度,从而使缓存的消息与被分配的Partition上的消息之间的属性相关度最小化,确定缓存的消息所分配的Partition。
9.根据权利要求7或8所述的系统,其特征在于,所述消息缓存和解析服务器为缓存的消息所生成的属性标识符包括消息源标识符与关键值标识符;其中,由同一个Producer节点所生成的消息具有相同的消息源标识符;以及,分析每个消息,从中提取关键值作为关键值标识符。
10.根据权利要求9所述的系统,其特征在于,所述消息缓存和解析服务器确定每两个缓存的消息之间的属性相关度,可按下述公式进行确定:
R=a1·S+a2·K
其中R是表示两个消息之间的属性相关度的量化参数;S是根据两个消息的消息源标识符评估的相关度量化参数;K表示根据两个消息的关键值标识符的重合度所评估的相关度量化参数,a1与a2是加权求和系数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110127972.7A CN112929430B (zh) | 2021-01-29 | 2021-01-29 | 一种基于物联网通信的数据传输方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110127972.7A CN112929430B (zh) | 2021-01-29 | 2021-01-29 | 一种基于物联网通信的数据传输方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112929430A true CN112929430A (zh) | 2021-06-08 |
CN112929430B CN112929430B (zh) | 2023-01-03 |
Family
ID=76168661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110127972.7A Active CN112929430B (zh) | 2021-01-29 | 2021-01-29 | 一种基于物联网通信的数据传输方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112929430B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113572854A (zh) * | 2021-08-10 | 2021-10-29 | 北京无线电测量研究所 | 基于Kafka组件的数据传输方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170317935A1 (en) * | 2015-01-23 | 2017-11-02 | Ebay Inc., | Processing high volume network data |
CN107454120A (zh) * | 2016-05-30 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 网络攻击防御系统和防御网络攻击的方法 |
US20180091588A1 (en) * | 2016-09-26 | 2018-03-29 | Linkedin Corporation | Balancing workload across nodes in a message brokering cluster |
CN108768826A (zh) * | 2018-05-16 | 2018-11-06 | 华南理工大学 | 基于MQTT和Kafka高并发场景下的消息路由方法 |
CN110659124A (zh) * | 2018-06-28 | 2020-01-07 | 北京京东尚科信息技术有限公司 | 一种消息处理方法和装置 |
CN111177276A (zh) * | 2020-01-06 | 2020-05-19 | 浙江中烟工业有限责任公司 | 一种基于Spark计算框架的动能数据处理系统及方法 |
CN111818112A (zh) * | 2019-04-11 | 2020-10-23 | 中国移动通信集团四川有限公司 | 一种基于Kafka系统的发送消息的方法和装置 |
CN111930538A (zh) * | 2020-07-31 | 2020-11-13 | 银盛支付服务股份有限公司 | 一种基于kafka集群的生产与消费的方法 |
CN112272217A (zh) * | 2020-10-16 | 2021-01-26 | 苏州浪潮智能科技有限公司 | 一种kafka集群负载均衡方法、系统、设备以及介质 |
-
2021
- 2021-01-29 CN CN202110127972.7A patent/CN112929430B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170317935A1 (en) * | 2015-01-23 | 2017-11-02 | Ebay Inc., | Processing high volume network data |
CN107454120A (zh) * | 2016-05-30 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 网络攻击防御系统和防御网络攻击的方法 |
US20180091588A1 (en) * | 2016-09-26 | 2018-03-29 | Linkedin Corporation | Balancing workload across nodes in a message brokering cluster |
CN108768826A (zh) * | 2018-05-16 | 2018-11-06 | 华南理工大学 | 基于MQTT和Kafka高并发场景下的消息路由方法 |
CN110659124A (zh) * | 2018-06-28 | 2020-01-07 | 北京京东尚科信息技术有限公司 | 一种消息处理方法和装置 |
CN111818112A (zh) * | 2019-04-11 | 2020-10-23 | 中国移动通信集团四川有限公司 | 一种基于Kafka系统的发送消息的方法和装置 |
CN111177276A (zh) * | 2020-01-06 | 2020-05-19 | 浙江中烟工业有限责任公司 | 一种基于Spark计算框架的动能数据处理系统及方法 |
CN111930538A (zh) * | 2020-07-31 | 2020-11-13 | 银盛支付服务股份有限公司 | 一种基于kafka集群的生产与消费的方法 |
CN112272217A (zh) * | 2020-10-16 | 2021-01-26 | 苏州浪潮智能科技有限公司 | 一种kafka集群负载均衡方法、系统、设备以及介质 |
Non-Patent Citations (1)
Title |
---|
刘邦等: ""Kafka 分布式消息队列的高性能研究"", 《电脑知识与技术》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113572854A (zh) * | 2021-08-10 | 2021-10-29 | 北京无线电测量研究所 | 基于Kafka组件的数据传输方法及系统 |
CN113572854B (zh) * | 2021-08-10 | 2023-11-14 | 北京无线电测量研究所 | 基于Kafka组件的数据传输方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112929430B (zh) | 2023-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218355B (zh) | 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法 | |
Zhang et al. | Proactive workload management in hybrid cloud computing | |
EP1825654B1 (en) | Routing a service query in an overlay network | |
US20130332612A1 (en) | Transmission of map/reduce data in a data center | |
WO2006062964A1 (en) | Splitting a workload of a node | |
US20200329118A1 (en) | Data transmission scheduling method and system | |
CN114064211B (zh) | 一种基于端-边-云计算架构的视频流分析系统及方法 | |
CN110569302A (zh) | 一种基于lucene的分布式集群的物理隔离的方法及装置 | |
US20200084121A1 (en) | Node of a Network and a Method of Operating the Same for Resource Distribution | |
US20180337840A1 (en) | System and method for testing filters for data streams in publisher-subscriber networks | |
EP3742697A1 (en) | Data transmission scheduling method and system | |
US6973536B1 (en) | Self-adaptive hybrid cache | |
CN112929430B (zh) | 一种基于物联网通信的数据传输方法及系统 | |
CN103248636A (zh) | 离线下载的系统及方法 | |
CN110381136A (zh) | 一种数据读取方法、终端、服务器及存储介质 | |
Lai et al. | A scalable multi-attribute hybrid overlay for range queries on the cloud | |
CN115438046B (zh) | 一种基于htap数据库的分布式储存方法 | |
CN116708452A (zh) | 一种基于防火墙端口映射的Kafka数据传输方法及系统 | |
Shen et al. | LORM: Supporting low-overhead P2P-based range-query and multi-attribute resource management in grids | |
CN110019274A (zh) | 一种数据库系统以及查询数据库的方法和装置 | |
CN110597809B (zh) | 一种支持树状数据结构的一致性算法系统及其实现方法 | |
CA2986758C (en) | Systems and methods for server failover and load balancing | |
CN109302505B (zh) | 数据传输方法、系统、装置和存储介质 | |
Furuya et al. | Load balancing method for data management using high availability distributed clusters | |
CN114328604B (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 |