一种基于netty多协议单端口复用的方法技术

技术编号:36217546 阅读:111 留言:0更新日期:2023-01-04 12:15
本发明专利技术公开了一种基于netty多协议单端口复用的方法,包括以下步骤:S1创建启动器;S2设置reactor反应器线程组;S4设置监听端口;S5设置通道参数;S6装配Handler流水线;S7启动进行端口绑定:通过调用sync同步方法阻塞直到绑定成功;S8创建不同的处理器;本发明专利技术主要基于Bootstrap来配置整个Netty程序,串联各个组件,传统每一种协议都开辟一个ServerBootstrap对象,因netty的reactor线程模型设计导致服务器的开销变大,而且在多端口的情况,安全性本身也有一定的问题,容易受到攻击,本方案充分发挥单Serverbootstrap,单bossGroup和单workGroup的性能,发挥netty的零拷贝技术,使用该方案可以使服务器的开销减少,降低了服务器的压力,避免了开辟多端口带来攻击风险,还可以支持多平台支持不一样的协议完成统一工作。议完成统一工作。议完成统一工作。

【技术实现步骤摘要】
一种基于netty多协议单端口复用的方法
[0001]

[0002]本专利技术涉及电子信息
,具体为一种基于netty多协议单端口复用的方法。
[0003]
技术介绍

[0004]Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future

Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果,作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也基于Netty的NIO框架构建,传统通信采用了同步阻塞IO,当客户端的并发压力或者网络时延增大之后,同步阻塞IO会由于频繁的wait导致IO线程经常性的阻塞,由于线程无法高效的工作,IO处理能力自然下降,每种协议都需开辟一个ServerBootstrap对象,netty的reactor线程模型设计导致服务器的开销变大,而且在多端口的情况,安全性本身也有一定的问题,本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于netty多协议单端口复用的方法,其特征在于,包括以下步骤:(1)创建启动器:创建了一个引导器 ServerBootstrap 实例,这个专门用于引导服务端的启动工作,直接new 创建即可;(2)设置reactor 反应器线程组:在设置reactor 反应器线程组之前,创建两个 NioEventLoopGroup 线程组;(3)设置通道的IO类型:b.channel(NioServerSocketChannel.class);(4)设置监听端口:b.localAddress(new InetSocketAddress(port));(5)设置通道参数:使用childOption()方法,option()方法去设置一些TCP底层相关的属性;(6)装配Handler流水线:ChannelPipeline 是Netty处理请求的责任链,是一个ChannelHandler的链表,而ChannelHandler就是用来处理网络请求的内容的,每一个channel,都有一个处理器流水线;(7)启动进行端口绑定:通过调用sync同步方法阻塞直到绑定成功;(8)创建不同的处理器:用来组建不同的ChannelPipeline完成后续的通信工作。2.根据权利要求1所述的一种基于netty多协议单端口复用的方法,其特征在于,所述步骤(2)中设置reactor 反应器线程组的方法包括以下步骤;(1)创建bossLoopGroup 表示服务器连接监听线程组,专门接受 accept 新的客户端client 连接;(2)创建workerGroup 表示处理每一条连接的数据收发的线程组;(3)在线程组和启动器都创建完成后,就可以开始设置线程组,通过 b.group(bossGroup, workerGroup) 方法,给引导器配置两大线程组;(4)配置完成之后,整个引导类的 reactor 线程正式确定,然后确定的工作模式,为父子线程的模型。3.根据权利要求1所述的一种基于netty多协议单端口复用的方法,其特征在于,所述步骤(5)中设置通道参数的方法包括以下步骤:(1)childOption()方法,给每条child channel连接设置一些TCP底层相关的属性,假如我们设置了两种TCP属性,其中 ChannelOption.SO_KEEPALIVE表示是否开启TCP底层心跳机制,true为开;(2)option()方法,对于server bootstrap而言,这个方法,是给parent channel 连接设置一些TCP底层相关的属性。4.根据权利要求1所述的一种基于netty多协议单端口复用的方法,其特征在于,所述步骤(6)装配Handler流水线的方法包括以下步骤:(1)装配child channel 流水线,调用childHandler()方法,传递一个ChannelInitializer 的实例;(2)child channel 创建成功,开始通道初始化的时候,bootstrap启动器中配置的 ChannelInitializer 实例就会被调用;(3)执行initChannel 初始化方法,开始通道流水线装配;(4)使用serverBootstrap.handler()方法和handler()方法,可以和前面分析的childHandler()方法对应起来,childHandler()用于指定处理新连...

【专利技术属性】
技术研发人员:吴海霖
申请(专利权)人:泉州砾鹰石科技有限公司
类型:发明
国别省市:

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

1