百度内最常使用的工业级RPC框架, 有1,000,000+个实例(不包含client)和上千种多种服务, 在百度内叫做”baidu-rpc“. 目前只开源C++版本。
你可以使用它:
- 搭建能在一个端口支持多协议的服务, 或访问各种服务
- restful http/https, h2/gRPC。使用brpc的http实现比libcurl方便多了。从其他语言通过HTTP/h2+json访问基于protobuf的协议.
- redis和memcached, 线程安全,比官方client更方便。
- rtmp/flv/hls, 可用于搭建流媒体服务.
- hadoop_rpc(可能开源)
- 支持rdma(即将开源)
- 支持thrift , 线程安全,比官方client更方便
- 各种百度内使用的协议: baidu_std, streaming_rpc, hulu_pbrpc, sofa_pbrpc, nova_pbrpc, public_pbrpc, ubrpc和使用nshead的各种协议.
- 基于工业级的RAFT算法实现搭建高可用分布式系统,已在braft开源。
- Server能同步或异步处理请求。
- Client支持同步、异步、半同步,或使用组合channels简化复杂的分库或并发访问。
- 通过http界面调试服务, 使用cpu, heap, contention profilers.
- 获得更好的延时和吞吐.
- 把你组织中使用的协议快速地加入brpc,或定制各类组件, 包括命名服务 (dns, zk, etcd), 负载均衡 (rr, random, consistent hashing)
试一下!
- 通过概述了解哪里可以用brpc及其优势。
- 阅读编译步骤了解如何开始使用, 之后可以运行一下示例程序.
- 文档:
- 性能测试
- bvar
- bthread
- Client
- Server
- 内置服务
- 工具
- 其他
- IOBuf
- Streaming Log
- FlatMap
- brpc外功修炼宝典(培训材料)
- 搭建大型服务入门(培训材料)
- brpc内功修炼宝典(培训材料)
- 深入RPC
- Use cases inside Baidu
贡献代码
请参考这里。
反馈问题
bug、修改建议、疑惑都欢迎提在issue中,或加入qq群498837325交流源码方面的问题。