网站、App 后端与各类在线服务都需要能承受高并发请求的 Web 接入层。立项原因:市面上虽有 Nginx 等成熟方案,但自研轻量 HTTP 服务器能真正吃透高并发服务的核心瓶颈——连接管理、线程模型与 I/O 路由。可应用于中小型内网 Web 服务、嵌入式设备的配置页面、教学演示等对资源占用敏感的轻量场景。
点击空白处退出提示
网站、App 后端与各类在线服务都需要能承受高并发请求的 Web 接入层。立项原因:市面上虽有 Nginx 等成熟方案,但自研轻量 HTTP 服务器能真正吃透高并发服务的核心瓶颈——连接管理、线程模型与 I/O 路由。可应用于中小型内网 Web 服务、嵌入式设备的配置页面、教学演示等对资源占用敏感的轻量场景。
1. HTTP/1.1 静态资源服务:GET 请求解析、MIME 类型映射、404/500 错误页、realpath 路径穿越防护;
2. keep-alive 长连接:连接内循环解析请求,30 秒空闲超时自动关闭;
3. epoll 事件引擎:监听 socket 非阻塞化,边沿触发 + 非阻塞 accept 批量收割连接,支持 eventfd 唤醒的优雅退出;
4. 线程池:固定 worker 复用线程处理连接任务,避免频繁创建销毁线程;
5. 性能基准测试体系:自研 Python 压测客户端,输出 QPS、平均延迟、P50/P99 分位。
技术栈:C++17 + Linux Socket + epoll + pthread 线程池。架构:epoll 事件循环管理监听 socket(非阻塞 accept 收割连接),连接任务提交线程池处理,keep-alive 连接内循环解析。
亮点与难点:① 持续迭代 4 个版本并用统一压测量化每步收益,混合并发 QPS 从 773 提升至 17247(22 倍);② 定位并解决监听队列溢出导致的约 1 秒 P99 长尾(SYN 重传);③ 实测发现阻塞模型下 2 条空闲长连接即占满线程池、第 3 条连接延迟达 29.8 秒的瓶颈,明确 Reactor 事件驱动演进方向;④ 修复 fd 泄漏与路径穿越安全漏洞,支持优雅退出与异常处理。




评论