第二章Netty,Netty为什么要用异步,Netty相比原生NIO优势 Netty 采用异步架构主要是为了解决传统 Java I/O 模型在高性能网络编程中的局限性,具体原因可以归纳为以下几点:1. 统一 API,屏蔽底层差异Java 原生提供了多种 I/O 模型,如阻塞 I/O (OIO/BIO)、非阻塞 I/O (NIO) 和异步 I/O (AIO/NIO.2)。这些 API 在设计理念和性能特征上存在显著差异且互不兼容。开发困境‌:开发者往往需要在项目初期就决定使用哪种 API。例如,OIO编程简单但难以支撑高并发;NIO性能高但 Selector API 复杂,开发成本高且容易出错。 aNetty方案‌:Netty 提供了一套统一的异步 I/O 接口(如 Channel),无论底层使用的是 NIO、OIO 还是其他传输类型,上层代码保持一致。这使得应用无需关心底层实现细节,既能享受 NIO 的高性能,又能保持代码的简洁性和可维护性。2. 突破高并发瓶颈传统阻塞 I/O (OIO)通常采用“一连接一线程”模型。当客户端数量较少时,这种模型简单易用;但随着业务增长,当服务器需要同时处理成千上万个连接时,创建大量线程会导致严重的上下文切换开销和内存资源耗尽。异步优势‌:Netty 基于事件驱动模型,利用少量的 I/O 线程(EventLoop)即可处理大量并发连接。异步非阻塞机制使得线程在等待 I/O 操作(如读写数据)完成时不会被挂起,而是可以去处理其他任务从而极大地提升了系统的吞吐量和扩展性。3. 简化复杂网络编程原生 NIO 的 Selector 机制虽然高