[发明专利]一种基于Kafka大消息可靠传输方法有效
申请号: | 201811255581.8 | 申请日: | 2018-10-26 |
公开(公告)号: | CN109361629B | 公开(公告)日: | 2020-11-03 |
发明(设计)人: | 鞠时光;李生 | 申请(专利权)人: | 江苏大学 |
主分类号: | H04L12/951 | 分类号: | H04L12/951;H04L29/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 212013 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 kafka 消息 可靠 传输 方法 | ||
1.一种基于Kafka的大消息可靠传输方法,其特征在于,包括以下步骤:
1)发送方创建消息分片器;
2)发送方发送原始消息到消息分片器;
3)消息分片器创建生产者;
4)消息分片器将原始消息分解为小消息;
5)消息分片器将小消息经生产者发送给Kafka集群;
6)Kafka集群对分片消息进行分布式存储;
7)接收方创建消息组成器;
8)消息组成器创建消费者;
9)消费者向Kafka集群订阅消息;
10)Kafka集群将小消息发送给消费者;
11)消息组成器从消费者接收小消息;
12)消息组成器将小消息拼接成原始消息;
13)消息组成器将原始消息发送给接收方;
所述步骤12)中,将小消息拼接成原始消息包括以下步骤:
12.1)消息组成器拆分小消息,即将小消息拆分为消息头和分片消息;
12.2)识别消息头分片标志字段,如果消息头分片标志字段值为0,分片消息就是原始消息转步骤13);如果消息头分片标志字段值为1,转步骤12.3);
12.3)识别消息头标识字段,根据标识字段的值查询分片消息映射表,如果存在该标识字段的值对应的分片消息链表,转步骤12.4),如果不存在则新建分片消息链表,转步骤12.4);
12.4)识别消息头片偏移字段;根据片偏移字段的值将分片消息插入到分片消息链表的对应位置;
12.5)识别消息头结束标志字段;如果结束标志字段值为1,将该分片消息的片偏移字段的值加1记录在分片个数映射表中;
12.6)判断分片消息链表的大小是否等于原始消息分片数,如果相等,转步骤12.7),如果不等,转步骤11);
12.7)按分片消息链表中分片消息的排列顺序拼接分片消息链表中的分片消息,还原成原始消息。
2.如权利要求1所述的基于Kafka的大消息可靠传输方法,其特征在于,所述步骤4)中,将原始消息分解为小消息包括以下步骤:
4.1)消息分片器利用MD5消息摘要算法计算消息标识码;
4.2)消息分片器将原始消息分割为分片消息;如果原始消息大于分片阈值N将原始消息按照分片阈值N分成多个分片消息,如果原始消息小于或等于分片阈值N则原始消息直接作为分片消息;
4.3)消息分片器为每一个分片消息生成消息头;
4.4)消息分片器将消息头拼接到分片消息之前,得到小消息。
3.如权利要求2所述的基于Kafka的大消息可靠传输方法,其特征在于,所述步骤4.3)中,所述消息头包含标识、分片标志、片偏移、结束标志4个字段;其中,标识字段用于标识分片消息与原始消息的对应关系,同一原始消息的各分片的标识字段相同,值为原始消息的消息标识码;分片标志字段用于标识原始消息是否进行过分片;结束标志字段用于标识该分片是否是原始消息的最后一个分片;片偏移字段用于标识该分片是原始消息的第几个分片。
4.如权利要求1所述的基于Kafka的大消息可靠传输方法,其特征在于,所述步骤12.3)中所述分片消息映射表为一个标识码对应一个分片消息链表的结构,用于存储不同原始消息对应的分片消息;分片消息链表为多个分片消息按顺序首尾相接的结构,用于存储同一原始消息下的各个分片消息。
5.如权利要求1所述的基于Kafka的大消息可靠传输方法,其特征在于,所述步骤12.5)中所述分片个数映射表为一个标识码对应一个分片个数的结构,用于记录每一个原始消息的分片个数。
6.如权利要求1所述的基于Kafka的大消息可靠传输方法,其特征在于,所述传输方法基于以下系统实现,包括消息分片器、生产者、Kafka集群、消费者和消息组成器;所述消息分片器由发送方创建,用于将发送方发送的原始消息分解为小消息、创建生产者以及将小消息发送给生产者;所述生产者由消息分片器创建,用于接收消息分片器的小消息并发送给Kafka集群;所述Kafka集群用于分布式存储生产者发送来的小消息、响应消费者请求并将小消息发送给消费者;所述消费者由消息组成器创建,用于从Kafka集群接收小消息并将小消息发送到消息组成器;所述消息组成器由接收方创建,用于创建消费者、从消费者接收小消息并将小消息拼接为原始消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏大学,未经江苏大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811255581.8/1.html,转载请声明来源钻瓜专利网。