✅Netty简介
Netty是由JBOSS提供的一个Java开源框架
Netty提供异步的 基于事件驱动的网络应用程序框架和工具 用于快速开发高性能 高可靠性的网络服务器和客户端程序
也就是说 Netty是一个基于NIO的客户端和服务器端编程框架
使用Netty可以快速简单开发出一个网络应用 例如实现了某种协议的客户端和服务端应用
相当于 Netty是简化了网络应用的编程开发过程
特点
- Netty提供了简单易用的API
- 基于事件驱动的编程方式来编写网络通信程序
- 支持更好的吞吐量
✅BIO、NIO、AIO
BIO:
同步阻塞IO( Block IO)
IO操作时会阻塞线程 并发处理能力低
一个Socket连接一个处理线程(该线程负责该Socket连接的一系列数据传输操作)
由于操作系统允许的线程数量是有限的 因此多个Socket申请与服务端建立连接时 服务端不能提供相应数量的处理线程
因此未被分配到处理线程的连接就会阻塞或被拒绝
NIO:
同步非阻塞IO(None-Block IO)
NIO是对BIO的改进 基于Reactor模型
一个Socket连接只有在特定时候才会发生数据传输的IO操作 大部分时候数据通道都是空闲的 但还占用着线程
因此 NI