Industrial-grade RPC framework used throughout Baidu, with 1,000,000+ instances and thousands kinds of services. "brpc" means "better RPC".
An industrial-grade RPC framework used throughout Baidu, with 1,000,000+ instances(not counting clients) and thousands kinds of services. "brpc" means "better RPC".
You can use it to: * Build a server that can talk in multiple protocols (on same port), or access all sorts of services * restful http/https, h2/gRPC. using http/h2 in brpc is much more friendly than libcurl. Access protobuf-based protocols with HTTP/h2+json, probably from another language. * redis and memcached, thread-safe, more friendly and performant than the official clients. * rtmp/flv/hls, for building streaming services. * hadooprpc (may be opensourced) * rdma support (will be opensourced) * thrift support, thread-safe, more friendly and performant than the official clients. * all sorts of protocols used in Baidu: baidu_std, streaming_rpc, hulupbrpc, sofa_pbrpc, novapbrpc, publicpbrpc, ubrpc and nshead-based ones. * Build HA distributed services using an industrial-grade implementation of RAFT consensus algorithm which is opensourced at braft * Servers can handle requests synchronously or asynchronously. * Clients can access servers synchronously, asynchronously, semi-synchronously, or use combo channels to simplify sharded or parallel accesses declaratively. * Debug services via http, and run cpu, heap and contention profilers. * Get better latency and throughput. * Extend brpc with the protocols used in your organization quickly, or customize components, including naming services (dns, zk, etcd), load balancers (rr, random, consistent hashing)
Please refer to here.