Linux 高性能服务器编程
Linux 高性能服务器编程
时间:2026/04/10
这组笔记当前已经覆盖 UDP、libevent 入门,以及一篇偏工程化的 Linux 服务端进阶专题。
阅读时可以先分清“传输语义”“事件驱动模型”“协议与线程分层”这三条线,再把它们串成完整服务端链路。
目录
1. UDP 通信
内容重点:
- UDP 与 TCP 的语义差异
- Linux 下的常用 UDP 接口
- UDP 服务端的基本工作流
- 在 UDP 上实现类似 TCP 的可靠传输思路
适合先看,因为它能把:
- 报文边界
- 丢包 / 乱序 / 重复
- 可靠性到底由谁负责
这些底层问题先讲清楚。
2. [1]libevent.md
内容重点:
evconnlistener- TCP 监听与连接接入
bufferevent的基础概念- 一个 echo server 的最小示例
更偏服务端事件驱动入门。
3. [2]libevent.md
内容重点:
bufferevent_socket_newbufferevent_socket_connect- 回调、水位、超时
- 一个最小客户端连接示例
更偏“如何基于 libevent 发起连接并管理 I/O”。
4. 高性能服务器编程笔记一
内容重点:
epoll的 LT / ET 与 Reactor- 非阻塞 socket 的常见错误处理
timerfd/eventfd/signalfd- 线程池与 I/O 线程分层
- HTTP 解析与应用层协议设计
- Linux 网络调优参数与排障方法
更偏“把一个事件驱动服务端补成可落地工程模型”。
建议阅读顺序
UDP.md[1]libevent.md[2]libevent.md高性能服务器编程笔记一.md
原因很简单:
- 先理解传输层语义
- 再看事件驱动服务端如何接连接
- 最后看
bufferevent客户端和缓冲管理 - 再补
epoll、线程模型、协议与调优这些工程问题
已补充的进阶主题
epoll的 LT / ET 模式与 Reactor- 非阻塞 socket 的错误处理
timerfd/eventfd/signalfd- 线程池与 I/O 线程分层
- HTTP 解析与应用层协议设计
- Linux 网络调优参数与排障方法
后续仍可补的主题
sendfile/splice/mmap与零拷贝SO_REUSEPORT、RSS / RPS / XPS 与多队列io_uring与传统 Reactor 的差异- 数据库 / 缓存 / RPC 接入后的背压治理