Sobre el proyecto
Apache bRPC es un marco de RPC en C++ de código abierto diseñado para sistemas distribuidos sensibles al rendimiento, como servicios de búsqueda, almacenamiento, aprendizaje automático, publicidad y recomendación.
Un servidor bRPC puede comunicarse a través de múltiples protocolos en el mismo puerto, incluyendo HTTP/HTTPS, HTTP/2 y gRPC, Redis, Memcached, Thrift, RTMP/FLV/HLS, RDMA y varios protocolos RPC heredados de Baidu. Puede exponer interfaces RESTful y mapear entre mensajes JSON y protobuf. Los servidores pueden procesar solicitudes de forma síncrona o asíncrona.
Los clientes admiten llamadas síncronas, asíncronas y semisíncronas. Los canales combinados proporcionan una forma declarativa de emitir solicitudes fragmentadas o paralelas. El marco también incluye solicitudes de respaldo, interrupción de circuito, limitación automática de concurrencia y estrategias de balanceo de carga como round-robin, aleatorio y hashing consistente. Las integraciones de servicios de nombres mencionadas incluyen DNS, ZooKeeper y etcd.
bRPC proporciona servicios integrados accesibles por HTTP para estado, variables, conexiones, banderas, trazado de RPC y perfilado de CPU, montón y contención. Sus herramientas incluyen rpc_press, rpc_replay, rpc_view, evaluación comparativa HTTP y utilidades HTTP paralelas. El proyecto también documenta bthread para subprocesos en espacio de usuario, bvar para métricas, IOBuf para gestión de búferes y disección de protocolos Wireshark.
Los desarrolladores pueden agregar nuevos protocolos o personalizar nombres, balanceo de carga y otros componentes. Para servicios replicados de alta disponibilidad, el README señala a braft, una implementación separada del consenso Raft asociada con el proyecto. La documentación cubre inicio, clientes, servidores, RPC en streaming, servicio de medios, depuración, gestión de memoria, E/S, subprocesos, balanceo de carga, evaluaciones comparativas de rendimiento y ejemplos.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.