知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累。不占太多时间,不停的来唤醒你记忆深处的知识点。
一、捋顺netty开启方式
最简单开启一个server nio
开启具体流程:
1.1 创建两个NioEventLoopGroup对象
这两个对象是netty调度模块,也相对于传统I/O编程中的大线程组。 mainGroup:监听端口,创建新连接的线程组。 workerGroup: 处理每条链路上的数据读写线程组。
mainGroup: 日常例子,一个研发项目主管,他只管接任务,不停的把任务交给助手:
workerGroup:相对于助手,是任务真正实际的操刀手。
1.2 创建serverBootstrap 对象
启动服务端,需要这个来来启动,也相对于引导类。
1.3 关联主线程组和工作线程组
serverBootstrap.group(mainGroup,workerGroup) 这种方式把两个处理线程组关联到启动类上。
1.4 指定服务端IO模型
serverBootstrap.channel(NioServerSocketChannel.class) 这种方式来指定服务端是什么I/O模型,这里选择的Nio的I/O模型。 如果需要指定为BIO,只需替换为 OioServerSocketChannel.class即可。
1.5 指定服务端连接后续处理器
serverBootstrap.childHandler() 这里添加的是ChannelInitializer 可以定义每条链路连接上来后,每条连接的数据读写,业务处理逻辑。
serverBootstrap.handler() 这里添加的也是ChannelInitializer ,这里定义的是启动处理接口。
这里很好说明 handler 与 childHandler 的区别。
还有个泛型参数:NioSocketChannel,这个类是Netty的Nio操作类型的连接。
1.6 bind(8000)
绑定本地端口 8000
领取专属 10元无门槛券
私享最新 技术干货