下面我们对Netty服务端创建的关键步骤进行讲解。
步骤1:创建ServerBootstrap实例
代码 ServerBootstrap b = new ServerBootstrap();
ServerBootstrap是Netty服务端的启动辅助类,它提供了一系列的方法用于设置服务端启动相关的参数。ServerBootstrap只有一个无参的构造函数,因为它的参数太多了AND变化太多,采用Builder设计模式解决。
步骤2:设置并绑定Reactor线程池
代码 :
EventLoopGroup bossGroup = new NioEventLoopGroup(1);
EventLoopGroup workerGroup = new NioEventLoopGroup();
b.group(bossGroup, workerGroup)
Netty的Reactor线程池是EventLoopGroup,它实际就是EventLoop的数组。EventLoop的职责是处理所有注册到本线程多路复用器Selector上的Channel,Selector的轮询操作由绑定的EventLoop线程run方法驱动,在一个循环体内循环执行。值得说明的是,EventLoop的职责不仅仅是处理网络I/O事件,用户自定义的Task和定时任务Task也统一由EventLoop负责处理,这样线程模型就实现了统一。从调度层面看,也不存在在EventLoop线程中再启动其它类型的线程用于异步执行其它的任务,这样就避免了多线程并发操作和锁竞争,提升了I/O线程的处理和调度性能。
步骤3:设置并绑定服务端Channel
代码:b.channel(NioServerSocketChannel.class)
作为NIO服务端,需要创建ServerSocketChannel,Netty对原生的NIO类库进行了封装,对应实现是NioServerSocketChannel。对于用户而言,不需要关心服务端Channel的底层实现细节和工作原理,只需要指定具体使用哪种服务端Channel即可。因此,Netty的ServerBootstrap方法提供了channel方法用于指定服务端Channel的类型。Netty通过工厂类,利用反射创建NioServerSocketChannel对象。由于服务端监听端口往往只需要在系统启动时才会调用,因此反射对性能的影响并不大。
步骤4:链路建立的时候创建并初始
化ChannelPipeline cv
代码
b.childHandler(newChannelInitializer<SocketChannel>(){}
ChannelPipeline并不是NIO服务端必需的它本质就是一个负责处理网络事件的职责链,负责管理和执行ChannelHandler。网络事件以事件流的形式在ChannelPipeline中流转,由ChannelPipeline根据ChannelHandler的执行策略调度ChannelHandler的执行典型的网络事件如下:
整个服务端的代码,我会在讲完步骤后贴出。
相关推荐
在本篇“Netty开发记录三”中,我们将深入探讨Netty框架的使用,这是一个高效、灵活且可扩展的网络应用程序框架,广泛应用于高性能服务器和客户端的开发。Netty简化了网络编程,提供了异步事件驱动的网络通信模型,...
### Netty开发视频教程知识点详解 #### 一、Netty简介与环境搭建 - **Netty概述**:Netty是一款高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器与客户端。它由JBOSS提出,后被Red ...
第三种是综合了前面二种的优点,会极大地提高ETL的开发速度和效率。 3. 数据抽取 数据抽取需要在调研阶段做大量的工作,首先要搞清楚数据是从几个业务系统中来,各个业务系统的数据库服务器运行什么DBMS,是否存在...
2. **Netty**: Netty是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在即时通讯场景下,Netty以其高效的I/O处理和非阻塞IO模型,确保了数据传输的高效性和实时性...
Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在本文中,我们将深入探讨 Netty 实时通讯的原理与应用,以及如何利用它构建 WebSocket 服务。 WebSocket 是...
在实际项目中,无论是构建TCP/UDP服务器,还是实现Web应用,甚至是处理二进制协议,Netty都能提供强大的支持。 总之,“最新Netty中文文档CHM版”对于想要学习和使用Netty的开发者来说,是一份宝贵的参考资料,它...
Netty是一个开源的Java框架,专门用于构建高性能、高可靠性...这个"Netty框架 jar包"是实现这些功能的关键,它封装了所有必要的类和接口,使得开发者可以便捷地将其集成到项目中,从而快速开发出高效、可靠的网络服务。
《Netty权威指南 第2版》是一本深入探讨Netty框架的专业书籍,旨在帮助读者全面理解和掌握这个高性能、异步事件驱动的网络应用框架。Netty由Java编写,广泛应用于服务器端开发,尤其是在高并发、低延迟的网络通信...
【标题】"xunyu_smgp:smgp协议netty开发" 涉及的主要内容是使用Java的Netty框架来实现SMGP(Short Message Gateway Protocol)协议。SMGP是一种专用于短信网关的通信协议,常用于移动通信运营商与第三方服务提供商...
2. **Android Socket通信**:在Android上,Netty通过Java的Socket API与远程服务器进行交互。Socket是网络通信的基础,它提供了一种端口到端口的通信方式,使得数据可以在不同设备间流动。 3. **Android权限管理**...
《Netty权威指南第二版》是由李林峰编著的一...通过对《Netty权威指南第二版》的深入学习,读者不仅可以理解Netty的设计原理,还能掌握如何利用Netty开发高效、可靠的网络服务,提升自身在Java网络编程领域的专业技能。
对于HTTP,Netty提供了对HTTP/1.x和HTTP/2的支持,包括WebSocket协议,使得开发Web服务和实时通信应用变得简单。 在性能优化方面,Netty提供了零拷贝(Zero-Copy)技术,通过减少数据在内存中的复制,提升了网络...
Netty是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。本书旨在帮助读者全面掌握Netty的核心概念、设计模式以及最佳实践。 首先,PDF版本的《Netty权威指南》提供了...
Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在深入探讨Netty的知识点之前,我们先简单理解一下标题和描述所暗示的信息。 标题 "netty-netty-4.1.32....
Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。这个“Netty学习资料.zip”压缩包包含了韩顺平老师关于 Netty 的一系列教学资源,包括资料、笔记、课件、代码...
7. **错误处理与调试**:在实际开发中,务必考虑网络异常、数据解析错误等情况,做好相应的错误处理和日志记录。 综上所述,Unity与Netty结合ProtoBuf-net进行通信,能实现高效、低延迟的数据传输,提高游戏的网络...
Netty是Java平台上的一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。尽管Netty本身是用Java编写的,但通过跨语言交互,C#也可以利用Netty进行网络通信。 在描述中...
在 Netty 3 的配置中,我们需要确保包含所有必要的 Netty jar 包,以及其他可能的第三方库,如 Log4j 或 SLF4J 用于日志记录。 2. **src/main/java**:源代码目录,包含你的服务器或客户端应用的 Java 类。在 Netty...
SpringBoot和Netty整合是现代Java开发中一个常见的技术组合,尤其在构建高性能、轻量级的网络应用时。SpringBoot以其便捷的依赖管理和自动配置功能简化了Java应用的搭建和部署,而Netty则是一个高效的异步事件驱动的...