Netty 服务端的创建

阅读源码是最有效的学习方式

Netty服务端的创建源码分析

Netty 服务端的创建
serevr 初始化
Netty 服务端的创建

创建ServerBootStrap 实例

这个类是服务端启动辅助类

设置并绑定Reactor 线程池

netty 的线程池是EventLoopGroup 它实际是EventLoop的数组 ,EventLoop的职责是 处理所有注册到本线程的多路复用器Seletor的Channel,Selector的轮询操作由绑定在EventLoop线程的Run方法驱动,在一个循环体内循环执行,不仅仅处理IO事件,用户自定义的Task和定时任务的Task也是由Event Loop负责处理,这种线程模型不存在EventLoop线程去启动其他类型的线程同于异步处理任务,避免了多线程的并发操作和锁的竞争

设置并绑定服务端的Channel

利用反射创建NioServerSocketChannel

链路建立连接时 初始化ChannelPipline

1 链路注册 2 链路** 3 链路断开 4 接收到消息 5 处理完毕消息 7 发送应答消息 8 发生用户自定义事件

添加设置Channelhandler

包括 编解码 ByteToMesageCoder 链路空闲检测handler idleStateHandler

Selecter 轮询 由reactor线程NioEventLoop 负责调度和执行Selecor轮询操作 选择准备就绪的Channel集合

服务器的启动

worker的初始化

Netty 服务端的创建
Netty 服务端的创建
Netty 服务端的创建
Netty 服务端的创建

boss的绑定端口

Netty 服务端的创建
Netty 服务端的创建
Netty 服务端的创建
Netty 服务端的创建
Netty 服务端的创建
Netty 服务端的创建