回顾经典项目Webserver

24k 词

回顾一下之前做的轻量级高并发网络服务器项目

项目部署在VMware的乌班图系统上,运行效果如下:

终端启动:

浏览器访问:

系统流程

主线程用epoll这种多路复用机制监听客户端连接,当有read或者write事件发出请求时,将请求加入到线程池,线程池中的一个线程争抢到锁,开始执行任务,任务包括解析请求与生成响应,包括对信号的序列化与反序列化,最终发布的静态资源为js页面,这里简单让ai写了一个电子木鱼的效果并进行一些润色,系统适配Linux。

线程池类

 

线程同步封装类

 

Http解析类

 

启动

压测

压测工具:webbench 1.5

指令:./webbench -c 5000 -t 10 http://localh ost:8080/index.html

结果:

Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://localhost:8080/index.html
5000 clients, running 10 sec.

Speed=2732598 pages/min, 7240987 bytes/sec.
Requests: 455431 susceed, 2 failed.

QPS 45,543,竟然还不错呢

不过并发数量再高点就不行了

经典永流传