外观
TCP 三次握手 → Socket → Netty 追问链
追问路径
Q: TCP三次握手过程?
→ SYN/SYN+ACK/ACK
Q: 服务端accept之后连接怎么处理?
→ Socket编程,BIO一连接一线程
Q: BIO的问题是什么?
→ 线程资源耗尽,需要NIO
Q: Java NIO怎么做?生产环境用什么?
→ Selector多路复用,生产用Netty
Q: Netty的线程模型?
→ 主从Reactor(BossGroup + WorkerGroup)涉及知识点
- TCP三次握手与四次挥手 — 连接建立基础
- BIO-NIO-AIO对比 — IO 模型演进
- select-poll-epoll对比 — 多路复用实现
- Reactor模式 — 高性能网络编程核心模式
核心串联逻辑
- TCP 握手建立连接后,服务端 accept() 返回 Socket
- BIO 模型:每个连接一个线程阻塞读写 → 万级连接时线程耗尽
- NIO 模型:Selector 监听多个 Channel 的事件 → 一个线程处理多连接
- Netty:封装 NIO,主从 Reactor 模式
- BossGroup:accept 新连接
- WorkerGroup:处理 IO 读写
- Pipeline:Handler 链处理业务
面试回答串联
"TCP 三次握手建立连接后,传统 BIO 每连接一线程无法支撑高并发。NIO 通过 Selector 多路复用让单线程管理多连接。生产中用 Netty 的主从 Reactor 模型——BossGroup 负责 accept,WorkerGroup 负责 IO,Pipeline 链式处理业务逻辑。"