-
主要功能
- 使用 线程池 + 非阻塞socket + epoll(ET模式) + 事件处理(Proactor) 的并发模型
- 实现基于小根堆的计时器,可以高效剔除长时间非活跃连接
- 异步日志系统,采用循环双向链表结构,便于扩展同时提高写入量
- 利用有限状态机处理http请求,解析数据
- 使用Webbench测试,可以实现上万的并发连接
-
文件目录
- ./http :http连接处理类;基于小根堆的定时器类实现;
- ./lock : 封装了互斥锁、型号量、条件变量;
- ./log : 异步日志系统,其中./log/shmtool.cpp 文件是为了获取程序异常退出时剩余未写入日志文件的日志记录;异步日志和同步日志的测试在./log/test文件中;
- ./threadpool:线程池
- ./unit_test:单元测试
- ./src:资源文件
-
快速运行
-
服务器测试环境
- Ubuntu版本20.04
-
浏览器
- Windows、Linux均可
- Chrome
- FireFox
- todo...
-
在当前目录下
make; ./server 9999 3其中9999是端口号,3是日志等级
程序异常崩溃后,刷出共享内存中的日志: 切到./log目录下
make; ./Mtool -f ../server -d
-f 后面跟运行的软件路径,-d为是否读取后删除
-
-
模块介绍
-
压力测试
-
遇到的一些问题
-
项目框架
- todo
-
TODO
- 日志系统捕获结束信号,内存中剩余的日志写完
- 加入kv存储引擎,实现用户注册功能
- 优化代码结构
- 定时器类中需要定时删除已经被标记删除的节点,长时间运行会导致内存消耗过高
-
Notifications
You must be signed in to change notification settings - Fork 0
hustlyhang/WSlyh
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
About
linux多线程服务器
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
