Overview of bRPC capabilities
masterbRPC (better RPC) is an industrial-grade C++ RPC framework designed for high-performance systems such as search, storage, machine learning, advertising, and recommendation engines.
Key capabilities include:
Multi-protocol Support on a Single Port
You can host or access various protocols on a single port, including:
- HTTP/HTTPS/h2/gRPC: Provides a convenient HTTP implementation (easier than
libcurl) and allows accessing Protobuf-based protocols via HTTP/h2+json from other languages. - Redis & Memcached: Thread-safe clients that are more convenient than official clients.
- Streaming Media: Supports RTMP, FLV, and HLS (can be used to build media servers).
- Other Protocols: Hadoop_RPC, Thrift (thread-safe), RDMA, and various Baidu-specific protocols (e.g.,
baidu_std,streaming_rpc,sofa_pbrpc,nova_pbrpc,public_pbrpc,ubrpc, andnshead-based protocols). - Distributed Systems: Supports building high-availability systems using an industrial-grade RAFT implementation (available via
braft).
Flexible Request Handling
- Server: Supports both synchronous and asynchronous request processing.
- Client: Supports synchronous, asynchronous, and semi-synchronous access. It also offers
combo_channelto simplify complex sharding or concurrent access patterns.
Observability and Debugging
- Built-in HTTP Interface: Debug services via a web interface.
- Profilers: Includes built-in CPU, heap, and contention profilers.
- Customization: Easy to add new protocols, custom components, naming services (DNS, ZK, etcd), and load balancing algorithms (RR, random, consistent hashing).