WebServer概览
- epoll ET模式(边缘触发模式)
- mysql数据库
- 连接池
- 线程池
- 日志
- 定时器
- Reactor模式
- http
- 大端序小端序
- 读写缓冲区
大概流程
主线程监听连接
主线程让epoll监听活跃的文件描述符
处理完之后开工作线程
工作线程任务(读写是分开的,不一定是同一个线程操作)
读写缓冲区是数据httpconn的,httpconn是一个类,一个用户实例,所以直接独立了。
- read客户端数据(用非阻塞IO)
- 有个读缓冲,每个连接独享一个读和写缓冲,有个65K缓冲区,保证能一次读完,读不完就扩容
- 以下业务逻辑
- 先去看读缓冲有没有数据
- 解析HTTP
- 生成响应数据
- 封装响应数据回传
Reactor没有分离读和写业务逻辑,Proactor才可以实现封装业务逻辑
性能相关
半同步半反应堆模式
- 一种高效的并发模式(半同步/半异步模式)的一种实现方式,另一种并发模式是领导之/追随者模式。
- 并发模式指的是I/O处理单元和多个逻辑单元之间的协调完成任务的方法。
- 这里的同步和异步与I/O模型中的同步与异步不同:
- I/O模型:内核向应用程序