第 3 章 · 第一站 Connector:请求进城 章节摘要:请求的旅程从城门口开始。本章围绕 Connector 展开:它如何监听端口、完成 TCP 握手、把字节流解析成请求对象并交给容器;三种 IO 模型(BIO、NIO、NIO2、APR)在"谁来等数据"上的本质差别;线程池如何决定并发容量;以及端口、AJP 协议与 HTTPS/TLS 的实战配置。学完本章,"连接被拒""连接超时""并发上不去"这类故障你能直接定位到连接器的哪个部件。 学习目标 能按顺序说出连接器内部的四个角色——监听器、轮询器、工作线程、协议处理器——各自的职责与协作方式。 能解释 acceptCount、maxConnections、maxThreads 三个参数分别限制什么,以及请求被拒发生在哪一层。
章节摘要:请求的旅程从城门口开始。本章围绕 Connector 展开:它如何监听端口、完成 TCP 握手、把字节流解析成请求对象并交给容器;三种 IO 模型(BIO、NIO、NIO2、APR)在"谁来等数据"上的本质差别;线程池如何决定并发容量;以及端口、AJP 协议与 HTTPS/TLS 的实战配置。学完本章,"连接被拒""连接超时""并发上不去"这类故障你能直接定位到连接器的哪个部件。
金句:连接器的全部工作,是把网络世界翻译成容器世界——字节变请求对象,套接字变线程任务。翻译岗的编制大小,就是你服务的并发上限。
3.1 认识部件,3.2 理解部件的工作方式(IO 模型决定线程怎么花),3.3 把部件接到真实网络世界(端口、加密、协议)。顺序是"解剖→生理→接线",跳过 3.1 直接配 TLS 也能跑,但出了性能问题你会不知道该怪谁。
3.1 解剖:有哪些部件 3.2 生理:部件怎么干活 3.3 接线:接到真实网络 ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Acceptor │ │ BIO 一连接一线程│ │ 多端口共存 │ │ Poller │ ────> │ NIO 一线程管多连│ ────> │ TLS 证书挂载 │ │ 工作线程 │ │ 三道闸门参数 │ │ AJP 与风险 │ │ Processor │ └──────────────┘ └──────────────┘ └──────────────┘
前置:第 1 章旅程图中"进城"一段的印象,2.2 的 server.xml 分层地图(Connector 标签的挂点)。最好补一点 TCP 基础:三次握手、 backlog 队列是什么。
后续延伸:请求过完城门就进入指路系统——第 4 章讲 Engine、Host、Context、Wrapper 如何接力。本章的线程池参数与 TLS 配置,第 7 章调优与安全加固会回来深挖。