[发明专利]一种物联网应用中基于Netty的海量数据接入方法及系统有效
申请号: | 202111369026.X | 申请日: | 2021-11-18 |
公开(公告)号: | CN114095537B | 公开(公告)日: | 2023-07-14 |
发明(设计)人: | 王练;张志栋;张雪珂;李南星;周悦宁;付小芳;陈奕豆;杨瀚;闫润博 | 申请(专利权)人: | 重庆邮电大学 |
主分类号: | H04L67/12 | 分类号: | H04L67/12;H04L67/10;H04L67/1004;H04L69/22;G16Y10/75 |
代理公司: | 重庆辉腾律师事务所 50215 | 代理人: | 卢胜斌 |
地址: | 400065 重*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 联网 应用 基于 netty 海量 数据 接入 方法 系统 | ||
1.一种物联网应用中基于Netty的海量数据接入方法,其特征在于,包括以下步骤:
S0、对物联网数据接入系统进行微服务分层划分,分为数据接入层、数据解析层、业务处理层,并对系统进行集群部署搭建;具体包括:
基础支撑层搭建Kafka集群用于消息队列,搭建Zookeeper集群用于服务注册中心;
业务处理层各节点均启动Kafka服务端与Kafka集群建立连接;
数据解析层各节点均启动Netty服务端用于接收接入层转发数据,并且将Netty端口等元数据使用Curator工具注册到Zookeeper集群中对应节点,同时利用Kafka客户端与Kafka集群建立连接;
数据接入层各节点首先使用Curator工具监听Zookeeper中解析层节点的注册信息变动,出现信息增删则对本地Netty客户端向解析层节点的Netty客户端发起连接与关闭连接,并将对应Channel通道缓存在本地内存;同时启动用于与终端通信的Netty服务端,并将相应节点信息注册到Zookeeper集群;
S1、当接入层节点的Netty服务端接收到终端报文后,对报文类型进行识别并以线程无锁化调度存入本地阻塞队列中,即报文数据在Netty中进行识别后,通过线程无锁化调度存入本地LinkedBlockingQueue阻塞队列,在每个阻塞队列都绑定一个专属拉取转发线程池;其中线程无锁化调度,即使用HashCode结合位与运算的算法将Work线程池中的每个NioEventLoop都绑定一个专属阻塞队列,每个阻塞队列在绑定专属线程的方式,实现线程间任务无锁化调度,获取NioEventLoop对应绑定的阻塞队列Z算法为:
Z=x(y-1)
其中,x表示NioEventLoop线程名称经过hashCode运算后的值;y为NioEventLoopGroup线程总数;Z为NioEventLoop线程所绑定的专属阻塞队列;表示按位与运算符;
S2、阻塞队列专属消费线程从队列拉取报文数据,若报文为核心数据,执行步骤S3;否则执行S4;
S3、线程调用负载均衡模块选中某一解析层节点将所持报文数据进行转发;
S4、线程通过本地Kafka客户端将报文数据发送到kafka转发专属Topic分区;
S5、数据解析层节点的Netty服务端接收到或者从Kafka中拉取到报文数据后,对其进行解析,转换成结构化数据后发送到Kafka业务专属Topic分区;
S6、业务处理层从Kafka业务Topic分区中拉取结构化数据进行具体业务处理,完成数据接入。
2.根据权利要求1所述的一种物联网应用中基于Netty的海量数据接入方法,其特征在于,接入端接收终端报文数据时,Netty作为服务端,使用主从Reactor线程模型,主线程池负责接收海量终端连接请求,从线程池负责海量终端报文读写与识别工作。
3.根据权利要求1所述的一种物联网应用中基于Netty的海量数据接入方法,其特征在于,数据接入层的节点与数据解析层的节点进行通信时,若转发线程拉取到的是核心数据则使用Netty进行数据传递,非核心数据使用消息中间件Kafka进行异步通信。
4.根据权利要求1所述的一种物联网应用中基于Netty的海量数据接入方法,其特征在于,核心数据和非核心数据根据终端数据的重要程度来区分,终端数据的重要程度由终端报文中设定等级标识字段来标识等级,一级、二级数据属于核心数据,三级、四级、五级属于非核心数据。
5.根据权利要求4所述的一种物联网应用中基于Netty的海量数据接入方法,其特征在于,核心数据在执行转发时会经过负载均衡模块,选取一个解析层节点的Channel通道进行转发,负载均衡模块采用随机权重算法,对于每一次调用其实现过程为:
计算本地已连接的所有解析层节点的权重和,并将各节点的权重按前缀和算法的方式存入权重数组;
在零到权重和之间生成一个随机数,作为随机权重;
遍历权重数组,找到第一个比随机权重大的权重的坐标;
获取此坐标代表的解析层节点,用作本次转发的节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆邮电大学,未经重庆邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111369026.X/1.html,转载请声明来源钻瓜专利网。