Description:
C++编写的web服务器,借鉴了《muduo网络库》的思想;使用了Reactor并发模型,非阻塞IO+线程池;解析了get、head请求;并实现了异步日志,记录服务器运行状态。
详细代码可见: https://github.com/whjkm/Web_Server
Architecture:
I/O 多路复用(事件分配器) + 非阻塞I/O + 主线程(处理请求)+ 工作线程(读、计算、写) + eventloop,即Reactor反应堆模式。
![[外链图片转存失败(img-KzNVQvZq-1564494938165)(./images/Architecture.png)]](https://i-blog.csdnimg.cn/blog_migrate/d508207d45391b4df2ca40f9c7d60b50.png)
Reactor:
Reactor设计模式是event-driven architecture的一种实现方式,处理多个客户端向服务端请求服务的场景。每种服务在服务端可能由多个方法组成。Reactor会解耦并发请求的服务并分发给对应的事件处理器来处理。

本文介绍了使用C++编写的基于Reactor并发模型的多线程Web服务器,采用非阻塞IO+线程池设计,支持GET和HEAD请求,具备异步日志记录。服务器架构包含主线程、工作线程、Reactor、EventLoop等组件,通过epoll进行事件分发,并使用muduo网络库思想。同时,文章提到了日志库的前后端设计,以提高写入效率。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



