文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

高性能、低开发门槛,搜狗开源轻量级RPC框架srpc

2024-12-03 19:01

关注

srpc 整个项目的代码量约有一万行,目前已经在搜狗搜索和搜狐集团团队的多个线上业务中稳定应用。srpc 接口简洁易上手,直接打通了 workflow 的任务流、计算调度、服务治理等功能, 可以快速提升开发效率,对于现有的 pb / thrift 描述文件的项目,也可以做到一键迁移。

1. srpc 项目的架构

srpc 项目支持多个层级的纵向拆解和横向解耦,其中主要包括的层级有用户代码、IDL 序列化、数据组织、压缩、协议和通信。

这些层级之间可以相互拼装,如果想要实现一套代码的高度复用也有多种方式,例如函数重载、派生子类实现父类接口和模版特化等。之后,如果想要进行架构升级,也可以在中间再加一层,或是在某层内横向添加一些内容。

对于用户来说,可能更关心的是 method,request,response。对应到 srpc 项目中就是接口描述文件层、RPC 协议层、网络通信层。

其中,接口描述文件层支持多种 IDL 格式,包括 Protobuf 和 Thrift;RPC 协议层支持 Thrift-binary、BRPC-std 和 SogouRPC-std;网络通信层支持 TCP、TPC_SSL、HTTP、HTTPS、HTTP2。

基础功能对比图

2. srpc 项目的性能

前文提到 srpc 的接口描述文件层支持 protobuf 和 thrift,这意味着用户不仅可以一键迁移基于 protobuf 或 thrift 作为 IDL 的项目,还可以用 srpc 作为一个性能更优的 thrift 框架或者 brpc 框架。

与 thrift 相比,srpc 所实现的 thrift framed 协议在吞吐和长尾方面性能都远超 thrift 原生框架。srpc 对于 thrift 接口描述文件实现了解析和代码生成,用户在 srpc 上使用 thrift IDL 时无需依赖 thrift 库。

而在 baidu-std 协议的实现上,吞吐和长尾在大部分场景下依然是 srpc 更优。由于 workflow 支持 Windows(同机性能比 linux 快 20%),所以用户得以在 Windows 下使用 brpc。另外,同样是支持 protobuf 的 RPC 框架,由于 srpc 实现了部分 IDL 解析和代码生成,接口形式无需受 protobuf 原始限制,因而所提供的接口比 brpc 更为简洁。

在易用性和可扩展性方面,用户可以通过 http+json 实现跨语言,如果是 server 提供方,用任何语言的 http server 接受 post 请求,解析若干 http header 即可;如果是 client 调用方,用任何语言的 http client 发送 post 请求,添加若干 http header 即可。

3. 与 workflow 的协作

srpc 是一个基于 Sogou C ++ Workflow 的 RPC 项目,所以天然就兼容 workflow 的使用方式,例如提供创建任务的接口来创建一个 rpc 任务、可以把 rpc 任务放到任务流图中,回调函数里也可以拿到当前的任务流、支持 workflow 所支持的其他功能,包括 upstream、计算调度、异步文件 IO 等。

同时,srpc 与 workflow 一起协作还可以完成很多其它事情:

srpc 项目开源地址:

https://github.com/sogou/srpc

 

来源:架构头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯