1.Netty是什么
1.1 简介
- Netty是一个Java开源框架,现为
Github上的独立项目
- Netty是一个异步的、
基于事件驱动的网络应用框架
,用以快速开发高性能、高可靠性的网络I/O
编程 - Netty主要针对在TCP协议下,面向
Clients
端的高并发应用,或者Peer to Peer
场景下的大量数据持续传输的应用 - Netty本质是一个
NIO框架
,适用于服务器通讯相关的多种应用
2.IO模型
3.Netty三大组件
3.1 Channel & Buffer
Channel
有一点类似于stream
,它就是读写数据的双向通道,可以channel
将数据读入buffer
,也可以将buffer
写入到channel
,而之前的stream
要么是input
,要么是output
,channel比stream更为底层
常见的channel有:
FileChannel(文件管道)
DatagramChannel(数据报管道,UDP)
serverSocketChannel(TCP)
ServerSocketChannel(TCP)
buffer则是用来缓冲读写数据的,常见的buffer
有:
ByteBuffer
(以字节为单位存储数据的缓冲区)- MappedByteBuffer
- DirectByteBuffer
- HeapByteBuffer
- ShortBuffer
- IntBuffer
- LongBuffer
- FloatBuffer
- DoubleBuffer