一种基于Netty的远程数据传输方法技术

技术编号:26890456 阅读:31 留言:0更新日期:2020-12-29 16:06
本发明专利技术公开了一种基于Netty的远程数据传输方法,包括:发起RPC请求;在建立连接过程中,初始化线程组;分派NIO线程,并建立线程池;启动数据转发器,并处理I/O事件;处理包界限;构建连接服务器通道;把已连接通道放在队列中;将数据发送到缓冲区后刷新输出;接收到数据时,把数据接入kafka消息队列中;把数据封装成kafka的ProducerRecord;判断topic有没有指定分区;如果确定topic没有指定分区,则判断是否有指定key;如果确定有指定key,则根据key的value采用对应的hash算法为topic指定一个分区;接入到topic所对应的分区,并将数据依次保存到该分区所对应的缓冲池中。通过上述方式,本发明专利技术能够实现高吞吐量的数据传输,有效提高I/O事件处理效率,使得不会出现线程堆栈溢出导致服务器宕机的现象。

【技术实现步骤摘要】
一种基于Netty的远程数据传输方法
本专利技术涉及互联网
,特别是涉及一种基于Netty的远程数据传输方法。
技术介绍
随着移动互联网的快速发展,网站规模日益扩大,比如通信、商务、物流、游戏系统访问量都是快速增长的数字,对于基于单体的系统应用(传统基于Tomcat等Web容器的垂直架构)来说,都面临大数据承载能力的考验。传统的RPC框架的远程过程调用或者基于RMI形式的远程方法调用的远程服务都采用同步阻塞I/O(输入/输出)事件,同步阻塞I/O事件容易随着客户端并发量的增大和网络延时增长频繁的等待导致I/O线程容易阻塞。如果线程无法及时释放,则I/O事件处理效率急剧下降,甚至会出现线程堆栈溢出导致服务器宕机的现象。
技术实现思路
本专利技术主要解决的技术问题是提供一种基于Netty的远程数据传输方法,能够实现高吞吐量的数据传输,使得能够有效提高I/O事件处理效率,使得不会出现线程堆栈溢出导致服务器宕机的现象。为解决上述技术问题,本专利技术采用的一个技术方案是:提供一种基于Netty的远程数据传输方法,其特征在本文档来自技高网...

【技术保护点】
1.一种基于Netty的远程数据传输方法,其特征在于,包括:/nNetty客户端发起RPC请求,并启动Netty连接器与Netty服务端建立连接;/n在Netty客户端与Netty服务端建立连接过程中,Netty客户端初始化线程组;/nNetty客户端分派NIO线程,并建立线程池;/nNetty客户端启动数据转发器,并处理I/O事件;/nNetty客户端处理包界限;/nNetty客户端构建连接服务器通道;/nNetty客户端把已连接通道放在队列中;/nNetty客户端将数据发送到缓冲区后刷新输出;/nNetty服务端接收到数据时,把数据接入kafka消息队列中;/nNetty服务端把数据封装成...

【技术特征摘要】
1.一种基于Netty的远程数据传输方法,其特征在于,包括:
Netty客户端发起RPC请求,并启动Netty连接器与Netty服务端建立连接;
在Netty客户端与Netty服务端建立连接过程中,Netty客户端初始化线程组;
Netty客户端分派NIO线程,并建立线程池;
Netty客户端启动数据转发器,并处理I/O事件;
Netty客户端处理包界限;
Netty客户端构建连接服务器通道;
Netty客户端把已连接通道放在队列中;
Netty客户端将数据发送到缓冲区后刷新输出;
Netty服务端接收到数据时,把数据接入kafka消息队列中;
Netty服务端把数据封装成kafka的ProducerRecord,其中ProducerRecord包括key、value、partition、timestrap和topic;
Netty服务端判断topic有没有指定分区;
如果确定topic没有指定分区,则判断是否有指定key;
如果确定有指定key,则Netty服务端根据key的value采用对应的hash算法为topic指定一个分区;
接入到topic所对应的分区,并将数据依次保存到该分区所对应的缓冲池中,且进行数据校验。


2.根据权利要求1所述的方法,其特征在于,该方法还包括:
如果确定没有指定key,则轮询一个分区,并执行接入到topic所对应的分区的步骤。


3.根据权利要求2所述的方法,其特征在于,该方法还包括:
如果确定topic有指定分区,则执行接入到topic所对应的分区的步骤。


4.根据权利要求3所述的方法,其特征在于,所述把数据接入kafka消息队列中的步骤之后,该方法还包括:
创建一个kafka的Producer实例,把数据进序列化。


5.根据权利要求4所述的方法,其特征在于,所述进行数据校验的步骤包括:
判断Kafka的Broker是否可以读取到缓冲池中的数据;
如果是,则将成功信息封装一个RecordMetaData对象进行返回;
如果是,则将失败信息封...

【专利技术属性】
技术研发人员:张华兵黄海英曹小明张今革杨航徐晖魏理豪
申请(专利权)人:南方电网数字电网研究院有限公司中国南方电网有限责任公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1