srpc高性能通用 RPC 框架

联合创作 · 2023-09-23 12:11

srpc 是搜狗自研的 RPC 系统,主要功能和特点如下:



  • 这是一个基于Sogou C++ Workflow的项目,兼具:

    • 高性能

    • 低开发和接入门槛

    • 完美兼容workflow的串并联任务流

    • 对于已有pb/thrift描述文件的项目,可以做到一键迁移


  • 支持多种IDL格式,包括:

    • Protobuf

    • Thrift


  • 支持多种数据布局,使用上完全透明,包括:

    • Protobuffer serialize

    • Thrift Binary serialize

    • json serialize


  • 支持多种压缩,使用上完全透明,包括:

    • gzip

    • zlib

    • snappy

    • lz4


  • 支持多种通信协议,使用上完全透明,包括:

    • tcp

    • http

    • sctp

    • ssl

    • https


  • 用户可以通过http+json实现跨语言:

    • 如果自己是server提供方,用任何语言的http server接受post请求,解析若干http header即可

    • 如果自己是client调用方,用任何语言的http client发送post请求,添加若干http header即可


  • 内置了可以与其他RPC框架的server/client无缝互通的client/server,包括:

    • BPRC

    • Thrift Framed Binary

    • Thrift Http Binary


  • 兼容workflow的使用方式:

    • 提供创建任务的接口来创建一个rpc任务

    • 可以把rpc任务放到任务流图中,回调函数里也可以拿到当前的任务流

    • workflow所支持的其他功能,包括upstream、计算调度、异步文件IO等


  • 更多功能和层次介绍


Installation



  • srpc是一个静态库libsrpc.a,只有开发环境需要依赖libsrpc,编译后二进制发布不需要依赖libsrpc库

  • srpc依赖workflow和protobuf3

    • protobuf需要用户自行安装v3.0.0以上的版本

    • workflow可以通过git的submodule形式进行依赖

    • 压缩库snappy和lz4也以submodule的形式在third_party/中作源码依赖




git clone --recursive https://github.com/sogou/srpc.git
cd srpc
make
sudo make install
浏览 22
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报