資料介紹
軟件簡介
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服務(wù)器引領(lǐng)數(shù)據(jù)中心的發(fā)展 363次下載
- 差分晶振在AI服務(wù)器中的應(yīng)用案例
- C和C++實(shí)物精選《C專家編程》 0次下載
- C和C++經(jīng)典著作《C和指針》 0次下載
- C和C++經(jīng)典著作-C專家編程.PDF 0次下載
- 基于人工智能驅(qū)動的關(guān)鍵信息基礎(chǔ)設(shè)施防御 4次下載
- 服務(wù)器群集服務(wù)MSCS v5.1版本資源下載 0次下載
- Visual C++和MFC創(chuàng)建的應(yīng)用程序基礎(chǔ)知識 0次下載
- 成本優(yōu)化的太陽能供電公共服務(wù)基礎(chǔ)設(shè)施
- C++程序設(shè)計(jì)教程之C++的初步知識的詳細(xì)資料說明 31次下載
- MSP430優(yōu)化C/C++編譯器V 3.2用戶指南 9次下載
- 《Visual C++游戲編程基礎(chǔ)》電子書.pdf 0次下載
- TMS320F28x 優(yōu)化C/C++編譯器用戶指南 25次下載
- c280x / c2801x C / C++頭文件和外周 實(shí)例快速啟動 7次下載
- 服務(wù)器和存儲器電源/冷卻趨勢和數(shù)據(jù)中心最佳實(shí)踐 33次下載
- C++簡史:C++是如何開始的 637次閱讀
- 嵌入式軟件架構(gòu)基礎(chǔ)設(shè)施設(shè)計(jì)方法 899次閱讀
- 基于云解決方案的基礎(chǔ)設(shè)施 494次閱讀
- 常見的服務(wù)器有哪些?5款常見的應(yīng)用服務(wù)器介紹 1.5w次閱讀
- 如何管理刀片服務(wù)器?普通服務(wù)器與高防服務(wù)器有什么樣的區(qū)別 1509次閱讀
- 服務(wù)器有什么作用?存儲服務(wù)器和普通服務(wù)器到底有什么區(qū)別 6142次閱讀
- GPU服務(wù)器到底是什么?GPU服務(wù)器與普通服務(wù)器到底有什么區(qū)別 7680次閱讀
- 云計(jì)算的未來將會是無服務(wù)器嗎 2871次閱讀
- 無服務(wù)器計(jì)算的含義和作用 2705次閱讀
- 基于Java的游戲服務(wù)器開發(fā)技術(shù)體系詳解 7319次閱讀
- 如何在存儲基礎(chǔ)設(shè)施中使用NVMe 3825次閱讀
- smtp服務(wù)器是什么意思_smtp服務(wù)器怎么設(shè)置 15.3w次閱讀
- 應(yīng)用服務(wù)器是什么_應(yīng)用服務(wù)器有哪些 3.4w次閱讀
- 高防服務(wù)器有些什么配置_高防服務(wù)器需要注意哪些內(nèi)容 1321次閱讀
- 騰訊云首發(fā)基于賽靈思FPGA的云服務(wù)器 991次閱讀
下載排行
本周
- 1DD3118電路圖紙資料
- 0.08 MB | 1次下載 | 免費(fèi)
- 2AD庫封裝庫安裝教程
- 0.49 MB | 1次下載 | 免費(fèi)
- 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
- 1.12 MB | 1次下載 | 免費(fèi)
- 4網(wǎng)絡(luò)安全從業(yè)者入門指南
- 2.91 MB | 1次下載 | 免費(fèi)
- 5DS-CS3A P00-CN-V3
- 618.05 KB | 1次下載 | 免費(fèi)
- 6海川SM5701規(guī)格書
- 1.48 MB | 次下載 | 免費(fèi)
- 7H20PR5電磁爐IGBT功率管規(guī)格書
- 1.68 MB | 次下載 | 1 積分
- 8IP防護(hù)等級說明
- 0.08 MB | 次下載 | 免費(fèi)
本月
- 1貼片三極管上的印字與真實(shí)名稱的對照表詳細(xì)說明
- 0.50 MB | 103次下載 | 1 積分
- 2涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 3錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 43次下載 | 1 積分
- 4錦銳CA51F005 SDK開發(fā)包
- 19.47 MB | 19次下載 | 1 積分
- 5PCB的EMC設(shè)計(jì)指南
- 2.47 MB | 16次下載 | 1 積分
- 6HC05藍(lán)牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下載 | 免費(fèi)
- 8蘋果iphone 11電路原理圖
- 4.98 MB | 6次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191390次下載 | 10 積分
- 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論