1. AIO 在 Spring WebFlux 的应用
请说明 AIO(异步非阻塞 I/O)在 Spring WebFlux 中的应用?
- AIO(NIO.2 异步 IO)与 Netty 模型
- WebFlux 基于 Netty 事件循环
- 非阻塞 IO 与背压
Spring WebFlux 基于 Netty(或 Servlet 3.1+ 的非阻塞容器)实现异步非阻塞 IO。Netty 采用事件循环(EventLoop)模型,基于 NIO 多路复用处理高并发连接,而非传统的线程-per-请求。AIO(NIO.2 异步 IO)是 JDK 的异步 IO 模型,但 Netty 主要基于 NIO 多路复用(Selector)而非 AIO,因为 AIO 在 Linux 上性能不如 NIO 多路复用。WebFlux 利用 Netty 的非阻塞 IO 与 Reactor 背压,实现单线程处理大量连接。核心是"事件循环 + 非阻塞 + 背压",而非 AIO 本身。
WebFlux 依赖 Netty 的 NIO 事件循环模型实现非阻塞,与 JDK AIO 关联不大。理解"事件循环 + 背压"是把握 WebFlux 并发模型的关键。