用过去的智慧引导 ai 变革,《架构师 2024 年(第二季)》开放下载。
写点什么

搜狗开源轻量级c 服务器引擎-金马国际

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

    阅读完需:约 6 分钟

6 月 17 日,极客时间正式上线,10 周掌握企业级 agents 从设计、开发到部署全流程。

9 月 3 日,搜狗公司正式宣布开源 c 服务器引擎——sogou c workflow。


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


sogou c 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:5110257

评论 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
回复
没有更多了
  • 2023-09-26

  • kubernetes node组件的关键指标与数据采集

    2023-02-15

  • 现有开源 serverless 或 faas 平台并不能满足构建现代云原生 faas 平台的要求,而云原生 serverless 领域的最新进展却为构建新一代 faas 平台提供了可能。

  • 2023-09-28

  • 本文会为大家简单介绍 volo 及其相关生态,并为大家提供一个简单的 rust 与 go 的选型建议。

  • 这节课,让我们将worker节点变为一个支持grpc与http协议访问的服务,让它最终可以被master服务和外部服务直接访问。

    2022-12-27

  • 搜狗于今年7月发布了c 异步调度服务器引擎——workflow,除了计算通信融为一体的高性能特点以外,还集成了多种常用的网络协议,包括:http、redis、mysql,所有协议都是纯自研自解析,无需依赖第三方库,而具体协议所对应的资源复用和线程调度等都由workflo

    2020-12-28

  • 欢迎开发者使用,并提出宝贵意见。

    2021-06-16

  • 背景: openmldb 线上计算的最大优势为可以低延迟(毫秒级)高效处理实时特征计算请求。其中,为了达到低延迟,openmldb 默认使用了基于内存的存储引擎。

    2022-11-02

  • 是不是觉得c 写个服务太累,但又沉迷于c 的真香性能而无法自拔?作为一个老牌c 程序员,这几天听一个好友跟我聊起他写的c 框架,说极简代码即可完成各种c 服务的开发,不禁让我心生好奇!于是我去研究了一下,发现确实有点意思!

    2021-04-28

  • 2022-09-21

  • 微服务从诞生到现在,经历了很长时间。期间不同公司,不同的团队有各自独特的见解,但慢慢对于微服务的各个方面的理解,如服务发现一致性、容错、事务、熔断、降级、配置等等趋于一致。

  • 4月8日,apache基金会官方宣布apache dolphinscheduler项目正式毕业,成为apache顶级项目。

  • 作业帮初期因业务快速发展,服务端采用php语言作为主要开发语言,很好支撑了业务快速的迭代发展。微服务架构支持欠缺:odp通过phplib耦合服务,类单体架构,服务间边界模糊,框架全局部署且缺乏现代包管理工具。

  • 科大讯飞在云原生应用架构转型的实践中,实现了高达50%的降本成果。

  • hertz 是字节跳动服务框架团队研发的超大规模的企业级微服务 http 框架,具有高易用性、易扩展、低时延等特点。在经过了字节跳动内部一年多的使用和迭代,如今已在 cloudwego 正式开源。

  • 2023-09-27

  • request

    2021-10-30

  • 推动 serverless 基准测评规范化、标准化

  • 微博评论模块的核心功能就是看评论和发评论。而对于发评论和看评论来说,看评论需要的性能会更高,毕竟微博用户大部分是看评论的请求更多,而发评论的比较少。

    2021-11-29

发现更多内容
金马国际
网站地图