这个项目能做什么

Apache bRPC 是一个开源的 C++ RPC 框架,面向对性能敏感的分布式系统,例如搜索、存储、机器学习、广告和推荐服务。 bRPC 服务器可以在同一端口上通过多种协议进行通信,包括 HTTP/HTTPS、HTTP/2 和 gRPC、Redis、Memcached、Thrift、RTMP/FLV/HLS、RDMA,以及若干继承自百度的 RPC 协议。它可以暴露 RESTful 接口,并在 JSON 与 protobuf 消息之间进行映射。服务器可以同步或异步地处理请求。 客户端支持同步、异步和半同步调用。组合通道提供了一种声明式方式来发起分片或并行请求。该框架还包含备份请求、熔断、自动并发限制,以及轮询、随机和一致性哈希等负载均衡策略。提到的命名服务集成包括 DNS、ZooKeeper 和 etcd。 bRPC 提供内置的、可通过 HTTP 访问的服务,用于查看状态、变量、连接、标志、RPC 追踪,以及 CPU、堆和锁竞争分析。其工具包括 rpc_press、rpc_replay、rpc_view、HTTP 基准测试和并行 HTTP 实用工具。项目还记录了用于用户态线程的 bthread、用于指标的 bvar、用于缓冲区管理的 IOBuf,以及 Wireshark 协议解析。 开发者可以添加新协议,或自定义命名、负载均衡及其他组件。对于高可用复制服务,README 指向 braft,这是一个与该项目相关的独立 Raft 共识实现。文档涵盖快速入门、客户端、服务器、流式 RPC、媒体服务、调试、内存管理、IO、线程、负载均衡、性能基准测试和示例。