Sobre o projeto
Apache bRPC é um framework RPC em C++ de código aberto destinado a sistemas distribuídos sensíveis a desempenho, como serviços de busca, armazenamento, aprendizado de máquina, publicidade e recomendação.
Um servidor bRPC pode se comunicar por meio de múltiplos protocolos na mesma porta, incluindo HTTP/HTTPS, HTTP/2 e gRPC, Redis, Memcached, Thrift, RTMP/FLV/HLS, RDMA e vários protocolos RPC herdados do Baidu. Ele pode expor interfaces RESTful e mapear entre mensagens JSON e protobuf. Os servidores podem processar requisições de forma síncrona ou assíncrona.
Os clientes suportam chamadas síncronas, assíncronas e semissíncronas. Canais combinados oferecem uma forma declarativa de emitir requisições fragmentadas ou paralelas. O framework também inclui requisições de backup, disjuntores, limitação automática de concorrência e estratégias de balanceamento de carga, como round-robin, aleatória e hashing consistente. As integrações de serviços de nomes mencionadas incluem DNS, ZooKeeper e etcd.
O bRPC fornece serviços integrados acessíveis via HTTP para status, variáveis, conexões, flags, rastreamento de RPC e profiling de CPU, heap e contenção. Suas ferramentas incluem rpc_press, rpc_replay, rpc_view, benchmarking HTTP e utilitários HTTP paralelos. O projeto também documenta bthread para threading em espaço de usuário, bvar para métricas, IOBuf para gerenciamento de buffers e dissecção de protocolo no Wireshark.
Os desenvolvedores podem adicionar novos protocolos ou personalizar componentes de nomes, balanceamento de carga e outros. Para serviços replicados de alta disponibilidade, o README aponta para o braft, uma implementação separada de consenso Raft associada ao projeto. A documentação cobre primeiros passos, clientes, servidores, RPC com streaming, serviço de mídia, depuração, gerenciamento de memória, IO, threading, balanceamento de carga, benchmarks de desempenho e exemplos.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.