前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Netty主要结构和类

Netty主要结构和类

作者头像
书唐瑞
发布2022-06-02 13:47:49
2760
发布2022-06-02 13:47:49
举报
文章被收录于专栏:Netty历险记

学习过程中总结下Netty主要结构和类, 让我们从更高的高度去'窥视'Netty内部结构, 对我们熟悉数据在它内部流转有很大帮助, 后续会更详细介绍, 将它们串起来.

Netty

在Netty内部主要是两个线程池(NioEventLoopGroup). 一个负责接收客户端请求, 一个负责处理IO.

当NioServerSocketChannel接收到请求后, 会将请求放入与之关联的Pipeline中, Pipeline中有很多ChannelHandlerContext, 有一个ChannelHandlerContext会将请求封装成Netty的NioSocketChannel, 最后会注册到另一个NioEventLoopGroup中的NioEventLoop上.

接收请求

基本上一个服务器只有一个NioServerSocketChannel, 并注册在NioEventLoop上. 通过一个无限循环监听客户端请求(ACCEPT). 当有多个客户端请求时, 默认情况一次读取16个客户端(某些版本是这么实现的).

处理IO

当NioSocketChannel与唯一的NioEventLoop关联后, NioEventLoop便会通过无限循环监听这个Channel的读写请求. 当接收到读请求后, 通过Unsafe读取到数据后, 会继续'传给'Pipeline, 由Pipeline中的ChannelHandlerContext继续处理, 而ChannelHandlerContext是由我们自己实现的业务, 只是我们把这些ChannelHandlerContext添加到Pipeline中而已.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Netty历险记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档