资料介绍
软件简介
mongols 是一个 C++ 库。
依赖:
-
linux
-
pcre-devel
-
hiredis-devel
-
zlib-devel
-
openssl-devel
-
curl-devel
sudo yum install pcre-devel zlib-devel openssl-devel hiredis-devel libcurl-devel
或者:
sudo apt-get install libpcre3-dev zlib1g-dev libssl-dev libhiredis-dev libcurl4-openssl-dev
特性:
epoll or epoll + multi-threading
-
tcp sever
-
http server
-
websocket server
-
web server
-
leveldb server
-
lua server
-
sqlite server
-
utils
安装:
make clean && make -j2 && sudo make install && sudo ldconfig
使用:
pkg-config --libs --cflags mongols
例子:
#include#include #include #include #include #include #include #include/* //websocket server int main(int,char**){ int port=9090; const char* ; mongols::ws_server server(host,port,5000,2048,4); auto f=[](const std::string& input , bool& keepalive , bool& send_to_other , mongols::tcp_server::client_t& client , mongols::tcp_server::filter_handler_function& send_to_other_filter){ keepalive = KEEPALIVE_CONNECTION; send_to_other=true; if(){ keepalive = CLOSE_CONNECTION; send_to_other = false; } }; server.run(f); //server.run(); } */ /* //tcp server or tcp multi-threading server int main(int,char**) { auto f=[](const std::string& input , bool & keepalive , bool& send_to_other , mongols::tcp_server::client_t& client , mongols::tcp_server::filter_handler_function& send_to_other_filter){ keepalive= KEEPALIVE_CONNECTION; send_to_other=true; return input; }; int port=9090; const char* ; //mongols::tcp_threading_server mongols::tcp_server server(host,port); server.run(f); } */ //http server or multi-threading server int main(int,char**) { auto f=[](const mongols::request&){ return true; }; auto g=[](const mongols::request& req,mongols::response& res){ //std::unordered_map::const_iterator i; //if((i=req.session.find("test"))!=req.session.end()){ //long test=std::stol(i->second)+1; //res.content=std::to_string(test); //res.session["test"]=res.content; //}else{ //res.content=std::to_string(0);; //res.session["test"]=res.content; //} res.content=std::move("hello,world"); res.status=200; }; int port=9090; const char* ; mongols::http_server //server(host,port,5000,1024,4); server(host,port); server.set_enable_session(false); server.set_enable_cache(false); server.run(f,g); } /* //web server or multi-threading server int main(int,char**) { auto f=[](const mongols::request&){ if(req.&&req.uri.find("..")==std::string::npos){ return true; } return false; }; int port=9090; const char* ; mongols::web_server //server(host,port,5000,1024,4); server(host,port); server.set_root_path("html"); server.set_mime_type_file("mime.conf"); server.set_list_directory(true); server.run(f); } */ /* //leveldb_server or multi-threading server int main(int,char**){ int port=9090; const char* ; mongols::leveldb_server //server(host,port,5000,1024,4); server(host,port); server.run("html/leveldb"); } */
压力测试:
[centos@localhost demo]$ uname -a Linux localhost 3.10.0-862.9.1.el7.x86_64 #1 SMP Mon Jul 16 16:29:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux [centos@localhost demo]$ cat /proc/cpuinfo| grep "processor"| wc -l 4 [centos@localhost demo]$ cat /proc/cpuinfo| grep "cpu cores"| uniq cpu cores: 2 [centos@localhost demo]$ cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 1
ab -c1000 -n100000 http://127.0.0.1:9090/
Server Software: mongols/0.9.0 Server Hostname: 127.0.0.1 Server Port: 9090 Document Path: / Document Length: 13 bytes Concurrency Level: 1000 Time taken for tests: 8.180 seconds Complete requests: 100000 Failed requests: 0 Write errors: 0 Keep-Alive requests: 0 Total transferred: 13300000 bytes HTML transferred: 1300000 bytes Requests per second: 12225.00 [#/sec] (mean) Time per request: 81.800 [ms] (mean) Time per request: 0.082 [ms] (mean, across all concurrent requests) Transfer rate: 1587.82 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 66 263.3 7 3020 Processing: 2 11 11.9 9 831 Waiting: 0 8 11.5 7 829 Total: 6 77 265.8 16 3033 Percentage of the requests served within a certain time (ms) 50% 16 66% 20 75% 22 80% 23 90% 29 95% 1017 98% 1025 99% 1030 100% 3033 (longest request)
ab -kc1000 -n100000 -H'Connection: keep-alive' http://127.0.0.1:9090/
Server Software: mongols/0.9.0 Server Hostname: 127.0.0.1 Server Port: 9090 Document Path: / Document Length: 13 bytes Concurrency Level: 1000 Time taken for tests: 1.935 seconds Complete requests: 100000 Failed requests: 0 Write errors: 0 Keep-Alive requests: 100000 Total transferred: 13800000 bytes HTML transferred: 1300000 bytes Requests per second: 51671.74 [#/sec] (mean) Time per request: 19.353 [ms] (mean) Time per request: 0.019 [ms] (mean, across all concurrent requests) Transfer rate: 6963.57 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 3.2 0 48 Processing: 8 19 1.4 18 48 Waiting: 0 19 1.4 18 25 Total: 8 19 3.1 18 64 Percentage of the requests served within a certain time (ms) 50% 18 66% 19 75% 19 80% 19 90% 20 95% 21 98% 23 99% 28 100% 64 (longest request)
- 探索新潮流 — AI服务器引领数据中心的发展 320次下载
- 差分晶振在AI服务器中的应用案例
- C和C++实物精选《C专家编程》 0次下载
- C和C++经典著作《C和指针》 0次下载
- C和C++经典著作-C专家编程.PDF 0次下载
- 基于人工智能驱动的关键信息基础设施防御 4次下载
- 服务器群集服务MSCS v5.1版本资源下载 0次下载
- Visual C++和MFC创建的应用程序基础知识 0次下载
- 成本优化的太阳能供电公共服务基础设施
- C++程序设计教程之C++的初步知识的详细资料说明 31次下载
- MSP430优化C/C++编译器V 3.2用户指南 9次下载
- 《Visual C++游戏编程基础》电子书.pdf 0次下载
- TMS320F28x 优化C/C++编译器用户指南 25次下载
- c280x / c2801x C / C++头文件和外周 实例快速启动 7次下载
- 服务器和存储器电源/冷却趋势和数据中心最佳实践 33次下载
- C++简史:C++是如何开始的 415次阅读
- 嵌入式软件架构基础设施设计方法 689次阅读
- 基于云解决方案的基础设施 380次阅读
- 常见的服务器有哪些?5款常见的应用服务器介绍 1.4w次阅读
- 如何管理刀片服务器?普通服务器与高防服务器有什么样的区别 1414次阅读
- 服务器有什么作用?存储服务器和普通服务器到底有什么区别 5995次阅读
- GPU服务器到底是什么?GPU服务器与普通服务器到底有什么区别 7384次阅读
- 云计算的未来将会是无服务器吗 2774次阅读
- 无服务器计算的含义和作用 2604次阅读
- 基于Java的游戏服务器开发威廉希尔官方网站 体系详解 7230次阅读
- 如何在存储基础设施中使用NVMe 3719次阅读
- smtp服务器是什么意思_smtp服务器怎么设置 15.2w次阅读
- 应用服务器是什么_应用服务器有哪些 3.4w次阅读
- 高防服务器有些什么配置_高防服务器需要注意哪些内容 1259次阅读
- 腾讯云首发基于赛灵思FPGA的云服务器 953次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多