搜狗服务器引擎Workflow(搜狗Workflow)是一个C++并行计算与异步网络引擎。
搜狗公司C++服务器引擎,支撑搜狗几乎所有后端C++在线服务,包括所有搜索服务,云输入法,在线广告等,每日处理超百亿请求。这是一个设计轻盈优雅的企业级程序引擎,可以满足大多数C++后端开发需求。
功能特点:
你可以用来:
1、快速搭建http服务器:
#include
#include "workflow/WFHttpServer.h"
int main()
{
WFHttpServer server([](WFHttpTask *task) {
task->get_resp()->append_output_body("Hello World!");
});
if (server.start(8888) == 0) { // start server on port 8888
getchar(); // press "Enter" to end.
server.stop();
}
return 0;
}
2、作为万能异步客户端。目前支持http,redis,mysql和kafka协议。
轻松构建效率极高的spider。
3、实现自定义协议client/server,构建自己的RPC系统。
srpc就是以它为基础,作为独立项目开源。支持srpc,brpc,trpc和thrift等协议。
4、构建异步任务流,支持常用的串并联,也支持更加复杂的DAG结构。
5、作为并行计算工具使用。除了网络任务,我们也包含计算任务的调度。所有类型的任务都可以放入同一个流中。
6、在Linux系统下作为文件异步IO工具使用,性能超过任何标准调用。磁盘IO也是一种任务。
7、实现任何计算与通讯关系非常复杂的高性能高并发的后端服务。
8、构建微服务系统。
项目内置服务治理与负载均衡等功能。
编译和运行环境:
1、项目支持Linux,macOS,Windows,Android等操作系统。
Windows版以windows分支发布,使用iocp实现异步网络。用户接口与Linux版一致。
2、支持所有CPU平台,包括32或64位x86处理器,大端或小端arm处理器,国产loongson龙芯处理器实测支持。
3、需要依赖于OpenSSL,推荐OpenSSL 1.1及以上版本。
不喜欢SSL的用户可以使用nossl分支,代码更简洁。但仍需链接crypto。
4、项目使用了C++11标准,需要用支持C++11的编译器编译。但不依赖boost或asio。
5、项目无其它依赖。如需使用kafka协议,需自行安装lz4,zstd和snappy几个压缩库。