学习思路
- Netty功能结构
- 各模块简介,相关名词解释
- 核心组件介绍
一、Netty功能结构介绍
解释:
- Transport Services:传输服务,具体网络传输的定义与实现
- Socket Datagram:TPC、UDP传输实现
- HTTP Tunnel:http传输协议实现
- In-VM pipe:内部JVM传输实现
- Protocol Support:协议支持
- Http协议、SSL、Google
- 压缩、大文件传输协议、实时流传输协议
- Core:核心功能
- Extensible Event Model:可扩展的事件模型
- Universal Communication API:通用通讯API
- Zero-Copy-Capable Rich Byte Buffer:支持0拷贝字节缓冲(ByteBuf缓冲对象)
二、各模块简介,相关名词解释
主要模块依赖关系图
项目结构:
解释:
1、common:主要是一些通用的工具类以及并发工具的拓展等,大部分模块都依赖属于顶层
2、buffer:实现了自己的ByteBuffer比JDK的ByteBuffer功能强大很多
3、codec:实现了各种编码解码,看图中有很多针对不同类型的拓展实现(http,redis,xml、、)
4、handler:主要定义和实现了内部的连接渠道处理器
5、transport:网络传输的各种定于与实现
三、核心组件介绍
Netty的核心组件主要有:
- Bootstrap & ServerBootstrap
- Netty启动器,包装了各个组件方便用户启动服务
- Bootstrap:主要用于启动客户端;ServerBootstrap:主要用于启动服务端
- Channel
- 封装了Netty的基本IO操作包含read,write,bind,connect等操作相对原始的Socket操作更简单
- ChannelFuture
- 因为Netty的IO操作都是异步的,不能实时返回结果,所以需要注册监听,等处理完毕通知监听者
- EventLoop & EventLoopGroup
- ChannelHandler
- 主要用于处理各种事件
- ChannelPipeline
- 主要是ChannelHandler链,事件进入ChannelPipeline流经里边的ChannelHandler,自己能处理的处理处理不了的往下传,类似于职责链模式
公众号主要记录各种源码、面试题、微服务技术栈,帮忙关注一波,非常感谢