今天给大家推荐搜狗一个开源项目
GitHub - sogou/workflow: C++ Parallel Computing and Asynchronous Networking Engine
这个其实是一个赋能C++/C后端工程师的高科技产品,以后我们就不需要自己造轮子就可以享受到大厂一样牛逼稳定的后端服务。
我们今天就从三个部分来展开,一、安装和入门 二、做一个web服务 三、测评
一、安装和入门
- 预备安装一些必要的包
yum install git cmake cmake3 openssl-devel gcc-c++
- 下载源码
git clone GitHub - pennyliang/workflow: Sogou framework for C++ backend development.
- 编译安装
cd /workflow/
./configure
make
make install
4) 编译和运行第一个代码
在tutorial 目录下找到样例代码 tutorial-04-http_echo_server.cc
用下面命令直接编译
g++ -std=c++11 -I /opt/sogou/include/ -o tutorial-04-http_echo_server tutorial-04-http_echo_server.cc /opt/sogou/lib64/libworkflow.a -lssl -lpthread -lcrypto
也可以直接在tutourial目录下运行make编译,上面这个编译命令方便你以后在自己的项目中编译。
运行这段代码(让这个服务开在9090端口上)
./tutorial-04-http_echo_server 9090
在这台机器上在运行,就可以看到正常工作了
curl "http://127.0.0.1:8080/index.html"
到这一步,基本上可以算是最低代价把这个东西算跑起来了。
二、制作一个http web 服务
我在2014年用C++自制了一个类似的web服务,用于跑pullword分词服务,这样的好处全是C代码,比较方便和我写的数据库联合编译,调试也方便。因为有了这个我尝试用这个来改造我的分词代码。
改动非常小。我这里只记录几个重要的改动。
只改了两个文件,一个是main文件,这个主要参考tutorial-04-http_echo_server.cc,其中有一个设置比较重要 settings.handler_threads = 10; 这个控制工作线程的数量,不超过CPU核的2倍比较好,如果有大量IO操作,可以适当提高倍数。
另一部分就是改工作线程的回调函数,这部分改动就大了,