srpc高性能通用 RPC 框架
srpc 是搜狗自研的 RPC 系統(tǒng),主要功能和特點(diǎn)如下:
- 這是一個(gè)基于Sogou C++ Workflow的項(xiàng)目,兼具:
- 高性能
- 低開發(fā)和接入門檻
- 完美兼容workflow的串并聯(lián)任務(wù)流
- 對(duì)于已有pb/thrift描述文件的項(xiàng)目,可以做到一鍵遷移
- 支持多種IDL格式,包括:
- Protobuf
- Thrift
- 支持多種數(shù)據(jù)布局,使用上完全透明,包括:
- Protobuffer serialize
- Thrift Binary serialize
- json serialize
- 支持多種壓縮,使用上完全透明,包括:
- gzip
- zlib
- snappy
- lz4
- 支持多種通信協(xié)議,使用上完全透明,包括:
- tcp
- http
- sctp
- ssl
- https
- 用戶可以通過http+json實(shí)現(xiàn)跨語言:
- 如果自己是server提供方,用任何語言的http server接受post請(qǐng)求,解析若干http header即可
- 如果自己是client調(diào)用方,用任何語言的http client發(fā)送post請(qǐng)求,添加若干http header即可
- 內(nèi)置了可以與其他RPC框架的server/client無縫互通的client/server,包括:
- BPRC
- Thrift Framed Binary
- Thrift Http Binary
- 兼容workflow的使用方式:
- 提供創(chuàng)建任務(wù)的接口來創(chuàng)建一個(gè)rpc任務(wù)
- 可以把rpc任務(wù)放到任務(wù)流圖中,回調(diào)函數(shù)里也可以拿到當(dāng)前的任務(wù)流
- workflow所支持的其他功能,包括upstream、計(jì)算調(diào)度、異步文件IO等
- 更多功能和層次介紹
Installation
- srpc是一個(gè)靜態(tài)庫libsrpc.a,只有開發(fā)環(huán)境需要依賴libsrpc,編譯后二進(jìn)制發(fā)布不需要依賴libsrpc庫
- srpc依賴workflow和protobuf3
- protobuf需要用戶自行安裝v3.0.0以上的版本
- workflow可以通過git的submodule形式進(jìn)行依賴
- 壓縮庫snappy和lz4也以submodule的形式在third_party/中作源碼依賴
git clone --recursive https://github.com/sogou/srpc.git cd srpc make sudo make install
評(píng)論
圖片
表情
