写点什么

搜狗开源轻量级 C++ 服务器引擎

  • 2020-09-03
  • 本文字数:1792 字

    阅读完需:约 6 分钟

搜狗开源轻量级C++服务器引擎

9 月 3 日,搜狗公司正式宣布开源 C++服务器引擎——Sogou C++Workflow。


目前 Workflow 支撑着搜狗几乎所有后端 C++在线服务包括所有搜索服务,云输入法,在线广告等,每日处理数百亿请求,引擎一经发布就在 GitHub 上引起众多开发者关注。这款引擎不仅实现了高性能、轻量级的落地,还创新性的引入任务流概念,实现了计算任务与通信任务的统一和协同调度。基于 Workflow 引擎,开发者可以方便的实现复杂的业务逻辑,并进一步满足对高并发、高性能 C++服务器程序的开发需求。


Sogou C++Workflow 地址:https://github.com/sogou/workflow

轻量级、高性能, Sogou C++ Workflow 助力企业降本增效

Workflow 在设计之初,就秉持着高性能与轻量级两个核心理念。长久以来,业界中优化服务器性能都主要专注于如何跑满 cpu、如何单独地让网络请求极速响应等方面。而此次上线搜狗 Workflow 则更专注于如何让各种网络资源被具体的调度器管理,使其尽可能地全部调度起来。



另一方面,对多通信计算资源融为一体的解决方案,进一步提升了 Workflow 引擎的性能。过去开发者在面临选择高吞吐网络框架时,需要自己面对不同计算资源比例而划分不同大小的线程池。然而每种计算具体资源需求比例是动态变化的,重要性也不一样,后端响应时长也是动态变动。如今在 workflow 的加持下,C++服务器引擎也能像 Go 语言一样,实现网络资源异步调度,并且进一步打通计算,磁盘等资源。



引入任务流概念,是搜狗 Workflow 引擎的另一亮点。Workflow 将资源高度封装,用户再也接触不到连接池、线程池、包括想要做 aio 时的文件 fd 与各种异步通知机制。这就意味着,在开发阶段开发人员仅仅需要了解业务关系而不用关心内部细节,帮助开发者们实现自己复杂的业务逻辑。


开发人员可以利用 Workflow 封装好的各种任务来动态或静态组建自己的业务逻辑,如下图所示,不同类型的任务都可以被串行、并行到一起:



除了各种创新设计以外,workflow 还拥有比其他 C++框架更友好的用户体验。过去许多企业自己搭建的服务器平台,在设计之初并未考虑到对多平台、多协议的支持,导致当新需求出现之时,开发者不得不通过自定义框架等方式来解决这个问题。Workflow 原生实现了对 http、redis、mysql 和 kafka 等协议,可以直接作为这些协议的客户端使用。并且在其基础上开发了一套更加易用的 Sogou RPC,实现与 brpc 和 thrift 互通,IDL 支持 protobuf 和 thrift,并且可以通过 http+json 或 IDL 实现跨语言,Sogou RPC 项目也会在不久的将来开源。

Http Server 性能实测:Sogou C++Workflow VS nginx、brpc

为了充分的体现出 Workflow 在性能上的优势,搜狗也提供了 Workflow 和 nginx、brpc 两个比较主流知名的系统一起做的 http server 性能对比。


测试环境:


这里选取了最基本的测试场景:wrk 或者 wrk2 跨机做 client,单 server,长连接,CPU:40 核 E5-2630 v4 @ 2.20GHz,内存:192GB,网卡:25000Mb/s。nginx 配置了 auto 的进程数(与核数一致),brpc 配置了 40 个 nthreads,workflow 配置了 16 个 poller 线程和 20 个 handler 线程。


测试一:不同并发数对 QPS 的影响(越高越好)



结论:随着压测并发数的增加,server 的 QPS 会随着增高。可以看到 Workflow 无论是低并发数还是高并发数的情况下,QPS 依然比 nginx 和 brpc 要高,尤其是并发数超过 128 的时候优势更加明显,Workfow 对于小包基本能保证 50w 的 QPS,说明内部对网络资源的高并发调度做了很多优化。


测试二:不同数据大小对 QPS 的影响(越高越好)



结论:此处的返回包大小是 http 请求的 body 大小,随着返回包增大,QPS 会有所下降,我们希望 QPS 依然尽可能保持平稳不要下降得太快。Workflow 在同并发下的性能依然比其他两个系统要好,说明网络收发和其他调用之间的调度协调得更好。


测试三:固定 QPS 下的延迟分布 CDF 图(越左越好,越直越好)



结论:本测试由 wrk2 进行固定 QPS 的压测,其中还有 1%的长尾请求 Outiler,长尾请求不计入结果,因为我们关注的是模拟真实情况下普通请求能否被及时处理。由于 nginx 在其他测试中性能略差一截,因此没有对其进行 CDF 对比。可以看到在不同比例的分布中,Workflow 的延迟更低、且最慢的那些(0.99 到 1.00 之间)延迟增长也相对缓慢,说明 Workflow 对长尾处理更及时。


通过对比,可以发现 Workflow 的确在核心性能上有着自己独到的优势,对于很多开发者来说,往后也就多了一种选择。


2020-09-03 13:5110604

评论 4 条评论

发布
用户头像
自己后台业务做得烂,和proxy什么关系,真6
2020-09-23 15:37
回复
用户头像
👏
2020-09-04 11:20
回复
用户头像
谢谢分享,改天下来阅读下。又gitee的镜像妈?
2020-09-03 16:03
回复
暂时没有放到gitee上~欢迎试用欢迎与我们多多交流哟~
2020-09-03 21:03
回复
没有更多了
发现更多内容

链游Gamefi,NFT游戏都有什么特点或优势,能吸引玩家呢

区块链开发团队DappNetWork

和鲸科技携手浙江大学地球科学学院,助推地球科学研究范式变革

ModelWhale

战略合作 地球科学 浙江大学 重点实验室

【YashanDB知识库】PHP使用ODBC使用数据库绑定参数功能异常

YashanDB

数据库系统 yashandb 崖山数据库

win版Gihosoft TubeGet Pro(YouTube 视频下载工具) v9.3.88 专业激活版

iMac小白

全面掌握统一任务调度监控:TASKCTL平台中Kettle作业的最佳实践与性能优化指南

敏捷调度TASKCTL

运维 kettle ETL任务 ETL系统 TASKCTL

介绍一下链游GameFi的玩法和类型有哪些

区块链开发团队DappNetWork

链游gamefi,NFT游戏经济模型定制设计开发

区块链开发团队DappNetWork

win版IObit Driver Booster Pro(驱动管理工具) v11.5.0.85便携版

iMac小白

介绍一下链游GameFi的玩法和类型有哪些

区块链开发团队DappNetWork

win版PanoramaStudio Pro(全景图像制作工具) v4.0.6.413 激活版

iMac小白

基础大模型纵横天下,垂直大模型各领风骚,专注一域称尊

松子(李博源)

大数据 大模型 agent 职场影响

达梦公开上市,首日收盘市值达182亿;Oracle云上将支持Oracle Database@Google Cloud

NineData

oracle Google 国产数据库 达梦 数据库上市

win版IObit Driver Booster Pro(驱动更新软件) v11.5.0.85 特别版

iMac小白

mac苹果电脑硬盘检测工具:SMART Utility for mac 激活版

你的猪会飞吗

Mac 软件 mac软件下载 Mac软件推 苹果电脑软件下载

win版R-Wipe & Clean(磁盘清理) v20.0.2461 激活版

iMac小白

win版JetBrains CLion 2024(C/C++集成开发环境) v2024.1.3 中文特别版

iMac小白

关于个人信息安全,这68项标准不容错过!(附下载)

极盾科技

数据安全

Dubbo3 服务原生支持 http 访问,兼具高性能与易用性

阿里巴巴云原生

阿里云 微服务 云原生 dubbo

win版Adobe Lightroom Classic 2024(LrC2024) v13.3.1.1(x64)直装版

iMac小白

一步一步教你用 Python 的 Requests 库发送 JSON 数据

Apifox

Python json 程序员 后端 API

数据管理优化,支持从 API 和对象存储更新数据集|ModelWhale 版本更新

ModelWhale

人工智能 对象存储 模型训练 数据集 API

精彩收官!北京中医药大学第五届“和鲸杯”医学数据分析大赛落幕

ModelWhale

人工智能 机器学习 数据分析 数据科学竞赛

win版DVD-Cloner 2024(DVD复制软件)特别版

iMac小白

链游Gamefi,NFT游戏都有什么特点或优势,能吸引玩家呢

区块链开发团队DappNetWork

win版GoodSync(文件同步备份工具) v12.6.8.8便携版

iMac小白

观测云产品更新 | BPF 网络日志、智能监控、告警策略等

观测云

win版HD Video Converter Factory Pro(高清视频转换器) v27.6特别版

iMac小白

拆解元宇宙:什么是链游gamefi,nft游戏

区块链开发团队DappNetWork

DAPP系统开发 元宇宙游戏 区块链开发DAPP开发 区块链kaifa链游开发 链游开发dapp开发

主动元数据平台详解(下):BIG 十一问,详解定位、对接、血缘保鲜等问题

Aloudata

数据管理 数据血缘 主动元数据

搜狗开源轻量级C++服务器引擎_开源_搜狗架构团队_InfoQ精选文章