项目简介
搜狗C++ Workflow是企业级的C++服务器引擎,支持搜狗后端大部分C++在线服务,如搜索服务、云输入法、在线广告等,每日处理请求超100亿。其设计轻盈优雅,能满足多数C++后端开发需求。
项目的主要特性和功能
- 快速搭建HTTP服务器:提供简单API,可快速创建HTTP服务器。
- 多功能异步客户端:支持HTTP、Redis、MySQL和Kafka协议,便于构建高效网络爬虫。
- 自定义协议与RPC系统:支持用户定义协议的client/server,可基于此构建自己的RPC系统。
- 异步任务流:支持串行、并行以及复杂的DAG结构任务流。
- 并行计算工具:支持网络任务和计算任务的调度,可将所有类型任务放入同一流中。
- 异步文件IO工具:在Linux系统下提供高性能的异步文件IO操作。
- 微服务系统:内置服务治理和负载均衡功能,支持与Kubernetes自动化部署集成。
安装使用步骤
假设用户已下载本项目的源码文件。
1. 复制项目:
sh
cd workflow
2. 编译项目:
sh
make
cd tutorial
make
3. 运行示例:
根据教程文档运行相应的示例程序,例如:
sh
./tutorial-01-wget
4. 配置与扩展:
根据项目需求,配置相关参数,如线程池大小、事件通知库的参数等。可通过自定义协议、算法和任务流来扩展项目功能。
5. 测试与调试:
运行项目并测试各个模块的功能,根据测试结果进行调试和修改,确保项目能够满足需求。
依赖与环境
- 操作系统:支持Linux、macOS、Windows、Android等。
- 编译器:需要支持C++11标准的编译器。
- 依赖库:依赖OpenSSL(推荐1.1及以上版本),如需使用Kafka协议,需安装lz4、zstd和snappy压缩库。
示例教程
客户端基础
服务器基础
并行任务与工作流
计算任务
文件异步IO任务
用户定义协议基础
系统设计特点
- 协议与算法独立开发:程序=协议+算法+任务流,三者完全独立开发。
- 异步性与C++11封装:基于C++11的std::function封装用户行为,避免派生,符合FaaS(Function as a Service)思想。
- 内存回收机制:任务在callback后自动回收,避免使用std::shared_ptr。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】