【C++】一个基于Reactor的多线程Web服务器

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

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)]

Reactor:

Reactor设计模式是event-driven architecture的一种实现方式,处理多个客户端向服务端请求服务的场景。每种服务在服务端可能由多个方法组成。Reactor会解耦并发请求的服务并分发给对应的事件处理器来处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值