×

srpc高性能通用RPC框架

消耗积分:2 | 格式:zip | 大小:0.43 MB | 2022-06-17

李芳

分享资料个

授权协议 Apache-2.0
开发语言 C/C++
操作系统 跨平台
软件类型 开源软件

软件简介

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
 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !