Implementação Java do Apache Dubbo, um framework de RPC e microsserviços para comunicação, descoberta e gerenciamento de tráfego entre serviços.
smallnest/rpcx
Framework RPC em Go para criar microsserviços, com descoberta de serviços extensível, vários transportes e codecs e acesso entre linguagens via HTTP.
- Estrelas
- 8,319
- Forks
- 1,173
- Issues abertas
- 4
- Último commit
- há 2 meses
O que é?
rpcx é um framework RPC escrito em Go, inspirado no Alibaba Dubbo, para dividir aplicações em serviços que se comunicam pela rede. Funções Go podem ser expostas diretamente como métodos RPC, sem a necessidade de escrever arquivos proto, e os clientes as chamam por meio de uma API simples que inclui opções de balanceamento de carga e failover.
O framework oferece suporte aos transportes TCP, HTTP, QUIC e KCP, e a codecs como JSON, Protobuf, MessagePack e bytes brutos. A descoberta de serviços pode usar configuração peer-to-peer, zookeeper, etcd, consul ou mDNS, e o balanceamento de carga oferece estratégias aleatórias, round-robin, hash consistente, ponderadas, entre outras. Também é possível chamar serviços de outras linguagens por meio de um gateway HTTP, e há implementações em Java e Rust.
O framework inclui recursos como autorização, passagem de metadados, compressão, heartbeats, comunicação bidirecional e requisições de backup. Alguns plugins, incluindo etcd, zookeeper e consul, foram movidos para repositórios separados a partir da versão 1.7.6.
Recursos principais
- 01Transforma métodos Go comuns em endpoints RPC sem arquivos proto.
- 02Oferece suporte aos transportes TCP, HTTP, QUIC e KCP.
- 03Oferece codecs JSON, Protobuf, MessagePack e de bytes brutos.
- 04Oferece descoberta de serviços via peer-to-peer, zookeeper, etcd, consul ou mDNS.
- 05Inclui estratégias de balanceamento de carga e modos de tolerância a falhas failover, failfast e failtry.
Casos de uso
- Dividir um backend Go em microsserviços que se comunicam entre si via RPC.
- Permitir que serviços escritos em outras linguagens chamem serviços Go por meio do gateway HTTP.
- Criar comunicação interna entre serviços que precise de descoberta de serviços e balanceamento de carga.
Em coleções
Tópicos
Perguntas frequentes
- O que é rpcx?
- Framework RPC em Go para criar microsserviços, com descoberta de serviços extensível, vários transportes e codecs e acesso entre linguagens via HTTP. rpcx é um framework RPC escrito em Go, inspirado no Alibaba Dubbo, para dividir aplicações em serviços que se comunicam pela rede. Funções Go podem ser expostas diretamente como métodos RPC, sem a necessidade de escrever arquivos proto, e os clientes as chamam por meio de uma API simples que inclui opções de balanceamento de carga e failover.
- rpcx é gratuito? Qual é a licença?
- rpcx é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
- rpcx ainda é mantido?
- Atualizado nos últimos 6 meses. O último commit de rpcx foi em 3 de set. de 2026.
- Para que posso usar rpcx?
- Dividir um backend Go em microsserviços que se comunicam entre si via RPC. Permitir que serviços escritos em outras linguagens chamem serviços Go por meio do gateway HTTP. Criar comunicação interna entre serviços que precise de descoberta de serviços e balanceamento de carga.
- Onde consigo rpcx?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/smallnest/rpcx
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Implementação do Spring Cloud que integra aplicações Spring Cloud ao Polaris, da Tencent, para descoberta e governança de serviços.
Gateway de API baseado em Java para proxy de serviços, conversão de protocolos e governança de APIs, com uma cadeia de plugins e um console central do Admin.
Um framework Go para sistemas distribuídos, com RPC, descoberta de serviços, mensageria, armazenamento e configuração, além de agentes, ferramentas e workflows.
Plataforma open source para descoberta dinâmica de serviços, gerenciamento dinâmico de configurações e metadados de serviços em sistemas cloud native e de microsserviços.
Starter do Spring Boot que executa servidores e clientes gRPC a partir de anotações como @GrpcService e @GrpcClient, sem configuração manual de canais ou servidores.