littlebot
Published on 2025-04-13 / 0 Visits
0

【源码】基于C++的搜狗服务器引擎

项目简介

搜狗C++ Workflow是企业级的C++服务器引擎,支持搜狗后端大部分C++在线服务,如搜索服务、云输入法、在线广告等,每日处理请求超100亿。其设计轻盈优雅,能满足多数C++后端开发需求。

项目的主要特性和功能

  1. 快速搭建HTTP服务器:提供简单API,可快速创建HTTP服务器。
  2. 多功能异步客户端:支持HTTP、Redis、MySQL和Kafka协议,便于构建高效网络爬虫。
  3. 自定义协议与RPC系统:支持用户定义协议的client/server,可基于此构建自己的RPC系统。
  4. 异步任务流:支持串行、并行以及复杂的DAG结构任务流。
  5. 并行计算工具:支持网络任务和计算任务的调度,可将所有类型任务放入同一流中。
  6. 异步文件IO工具:在Linux系统下提供高性能的异步文件IO操作。
  7. 微服务系统:内置服务治理和负载均衡功能,支持与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】