风格描述
基本组件
环境配置
Get start
docker部署
开发日志
目前的c++代码风格是偏向于C语言风格,较多使用POSIX接口
- 线程同步包装类.
- 数据库连接池.
- 线程池.
- 定时器.
- 日志系统.
- http请求处理器.
- 注册登陆主件.
- 服务器配置类.
- 单元测试套件.
-
编译工具链安装
sudo apt-get install cmake
-
数据库配置验证
运行服务器前配置webdev
# 进入root mysql create database user_info_db; # 创建数据库 create user 'webdev'@'localhost' identified by '12345678'; # 创建webdev用户 grant all privileges on user_info_db.* to webdev@localhost; # 赋予权限 flush privileges; exit; # 退出 # 进入webdev mysql -h localhost -u webdev -p use user_info_db; # 创建user表 USE user_info_db; CREATE TABLE user( username char(50) NULL, passwd char(50) NULL )ENGINE=InnoDB; # 插入第一个测试数据 INSERT INTO user(username, passwd) VALUES('manager','1234');
-
clone本仓库
git clone --recurse-submodules https://github.com/cuijunjie18/CJJ_webserver.git
-
编译
cd CJJ_webserver make clean && make build
-
单元测试编译
make clean && ENABLE_UT_TEST=ON make build -
运行
./bin/main
可以在根目录产生的日志查看服务器运行端口
-
浏览器访问
ip:port
项目现已支持Docker容器化部署!
- 使用docker-compose一键启动
# 使用docker-compose一键启动(包含MySQL数据库)
docker-compose up -d
# 访问服务
# 浏览器打开 ip:50001详细的Docker部署说明请参考:Docker部署指南
-
本地测试
cd CJJ_webserver make webbench ./WebBench/webbench # 根据使用说明使用即可
-
目前的压力测试结果
- 完善单元测试
- 完成压力测试
- 提高webserver的并发度
- 支持个性化启动服务器
- 支持docker启动
baseline: https://github.com/qinguoyi/TinyWebServer.git
mysql_cmake: https://github.com/nryeng/hello-mysql-world
GTest: https://zhuanlan.zhihu.com/p/693222066
