Este tópico apresenta a documentação do usuário do Apache Dubbo para sua referência.
Primeiros passos
Configure seu ambiente e coloque uma aplicação Dubbo em execução.
|
Tópico |
Descrição |
|
Informações básicas |
Conceitos fundamentais do Apache Dubbo e seu papel em sistemas distribuídos |
|
Requisitos |
Pré-requisitos de software e ambiente |
|
Arquitetura 2.6.1 |
Layout de componentes e modelo de interação do Dubbo 2.6.1 |
|
Arquitetura 2.7.1 |
Arquitetura atualizada e novas capacidades do Dubbo 2.7.1 |
|
Uso |
Padrões básicos para criar e executar serviços Dubbo |
|
Início rápido |
Guia passo a passo para começar com sua primeira aplicação Dubbo |
|
Dependências |
Bibliotecas e dependências necessárias |
|
Maturidade |
Níveis de estabilidade de recursos e indicadores de prontidão para produção |
Configuração
Configure serviços Dubbo por meio de XML, arquivos de propriedades, anotações ou API.
|
Tópico |
Descrição |
|
Configuração XML |
Defina serviços, referências e registros em arquivos XML |
|
Configuração de propriedades |
Utilize arquivos |
|
Configuração via API |
Configure o Dubbo programaticamente com código Java |
|
Configuração por anotações |
Use anotações Java para declarar serviços e referências |
|
Centro de configuração dinâmica |
Envie alterações de configuração em tempo de execução |
|
Processo de carregamento de configuração |
Como o Dubbo resolve e mescla configurações de múltiplas fontes |
|
Carregamento automático de variáveis de ambiente |
Mapeie variáveis de ambiente para propriedades de configuração do Dubbo |
Exemplos
Exemplos funcionais de recursos comuns do Dubbo, organizados por categoria.
Registro e descoberta de serviços
|
Tópico |
Descrição |
|
Verificação preliminar |
Valide a disponibilidade do provedor antes que o consumidor inicie |
|
Destino explícito |
Conecte-se diretamente a um provedor específico, ignorando o registro |
|
Apenas assinatura |
Descubra provedores pelo registro sem registrar o serviço local |
|
Apenas registro |
Registre o serviço local no registro sem assinar outros provedores |
|
Serviço estático |
Registre serviços com um endereço fixo que não muda dinamicamente |
|
Múltiplos registros |
Roteie serviços por mais de um servidor de registro |
Balanceamento de carga e tolerância a falhas
|
Tópico |
Descrição |
|
Balanceamento de carga |
Configure estratégias de balanceamento para invocações de serviço |
|
Estratégia de tolerância a falhas |
Gerencie falhas com políticas configuráveis de tolerância |
|
Degradar serviço |
Retorne resultados alternativos quando um provedor estiver indisponível ou lento |
|
Regra de roteamento |
Direcione o tráfego para provedores específicos com base em condições |
|
Configurar regras |
Aplique regras de governança dinamicamente em tempo de execução |
Modelo de serviço e versionamento
|
Tópico |
Descrição |
|
Grupo de serviços |
Isole diferentes implementações da mesma interface por grupo |
|
Múltiplas versões |
Execute várias versões de um serviço simultaneamente para uma implantação segura |
|
Múltiplos protocolos |
Exponha o mesmo serviço por mais de um protocolo ao mesmo tempo |
|
Mesclagem de grupos |
Agregue resultados de provedores em diferentes grupos de serviços |
Padrões de invocação
|
Tópico |
Descrição |
|
Chamada assíncrona |
Invoque serviços remotos sem bloquear a thread chamadora |
|
Execução assíncrona |
Execute a lógica do lado do provedor de forma assíncrona para melhorar o throughput |
|
Chamada local |
Invoque um serviço dentro da mesma JVM, evitando sobrecarga de rede |
|
Parâmetro de callback |
Receba resultados assíncronos por meio de uma interface de callback |
|
Notificação de eventos |
Dispare eventos em caso de sucesso, falha ou conclusão da invocação |
|
Referência genérica |
Chame qualquer serviço sem dependência de compilação em sua interface |
|
Serviço genérico |
Implemente um provedor que lida com interfaces de serviço arbitrárias |
|
Serviço de eco |
Teste a disponibilidade do serviço com uma solicitação de eco leve |
|
Contexto |
Passe e recupere metadados com escopo de requisição durante as invocações |
|
Parâmetros implícitos |
Anexe pares chave-valor ocultos às chamadas RPC sem alterar a assinatura da interface |
Controle de tráfego e gerenciamento de conexões
|
Tópico |
Descrição |
|
Controle de concorrência |
Limite o número de requisições simultâneas que um provedor ou consumidor processa |
|
Configurar conexões |
Defina tamanho do pool de conexões, timeout e parâmetros de keep-alive |
|
Conexão lazy |
Adie a criação da conexão TCP até que a primeira requisição seja enviada |
|
Conexão persistente |
Fixe um consumidor no mesmo provedor para casos de uso com afinidade de sessão |
|
Autorização por token |
Exija um token para impedir acesso direto não autorizado aos provedores |
|
Modelo de threads |
Personalize o pool de threads do Netty e a estratégia de despacho |
Recursos avançados
|
Tópico |
Descrição |
|
Stub local |
Execute lógica de pré ou pós-processamento no lado do consumidor antes ou depois de uma chamada remota |
|
Mock local |
Retorne dados simulados quando o provedor estiver indisponível, útil para testes e degradação |
|
Publicação atrasada |
Adie o registro do serviço até que a aplicação esteja totalmente inicializada |
|
Validação de parâmetros |
Valide os parâmetros do método antes da execução da chamada |
|
Cache de resultados |
Armazene resultados de invocação em cache para reduzir chamadas remotas repetidas |
|
Cache de ReferenceConfig |
Reutilize instâncias de |
|
Transação distribuída |
Coordene transações entre múltiplos serviços |
|
Thread dump automático |
Dispare um thread dump automaticamente quando o Dubbo detectar um problema |
|
Desligamento gracioso |
Drene requisições em andamento e cancele o registro do provedor antes que a JVM encerre |
Logs, rede e serialização
|
Tópico |
Descrição |
|
Vinculação de hostname |
Controle a qual interface de rede e hostname o Dubbo se vincula |
|
Estratégia de logger |
Alterne entre os frameworks de log Log4j, SLF4J, JCL e JDK |
|
Log de acesso |
Registre cada invocação recebida para auditoria e depuração |
|
Contêiner de serviço |
Execute serviços Dubbo independentemente, sem um contêiner web |
|
Netty4 |
Ative o transporte Netty 4 para obter melhor desempenho |
|
Uso de serialização Java eficiente no Dubbo (Kryo e FST) |
Substitua o serializador padrão por Kryo ou FST para uma serialização mais rápida |
|
Simplificar URLs de registro |
Reduza o tamanho das URLs de registro removendo parâmetros redundantes |
Referência da API
Documentação da API Java para classes e interfaces do Dubbo.
Referência de configuração XML
Descrições detalhadas de atributos e uso para cada tag XML do Dubbo.
|
Tag |
Descrição |
|
Introdução |
Atributos comuns e convenções compartilhadas entre as tags XML do Dubbo |
|
|
Expõe uma classe Java local como um serviço remoto Dubbo |
|
|
Cria um proxy para consumir um serviço remoto Dubbo |
|
|
Configura o protocolo de comunicação (porta, serialização, pool de threads) |
|
|
Conecta a um servidor de registro para descoberta de serviços |
|
|
Ativa a coleta e o relatório de métricas de invocação |
|
|
Define propriedades no nível da aplicação, como nome e proprietário |
|
|
Agrupa serviços relacionados em um módulo lógico |
|
|
Define valores padrão para todas as tags |
|
|
Define valores padrão para todas as tags |
|
|
Sobrescreve configurações para um método específico dentro de um serviço ou referência |
|
|
Configura regras de serialização ou validação para um argumento de método específico |
|
|
Passa pares chave-valor arbitrários como parâmetros de extensão |
|
|
Conecta a um centro de configuração externo para gerenciamento centralizado |
Referências de protocolos
Protocolos de comunicação suportados, cada um com detalhes de conexão, casos de uso e restrições.
|
Protocolo |
Descrição |
|
Introdução |
Orientação e comparação para seleção de protocolos |
|
|
Protocolo binário padrão de alto desempenho, adequado para cenários de alto throughput e baixa latência |
|
|
Protocolo Java RMI para integração com serviços RMI legados |
|
|
Protocolo binário Hessian com transporte HTTP integrado, útil para chamadas entre linguagens |
|
|
Protocolo HTTP padrão para invocações simples no estilo RESTful |
|
|
Protocolo de Web Services baseado em SOAP para integração de sistemas corporativos |
|
|
Protocolo Apache Thrift para RPC entre linguagens |
|
|
Acessa servidores Memcached por meio da interface de serviço Dubbo |
|
|
Acessa servidores Redis por meio da interface de serviço Dubbo |
|
|
Protocolo RESTful para invocações de serviço baseadas em HTTP |
Referências de servidores de registro
Opções de registro para descoberta de serviços, cada uma com instruções de configuração e compromissos.
|
Registro |
Descrição |
|
Introdução |
Orientação e comparação para seleção de registros |
|
Registro Multicast |
Registro sem dependências para desenvolvimento e testes em rede local |
|
Servidor de registro ZooKeeper |
Registro de nível de produção suportado pelo Apache ZooKeeper |
|
Centro de registro Nacos |
Registro e centro de configuração suportados pelo Alibaba Nacos |
|
Servidor de registro Redis |
Implementação de registro usando pub/sub do Redis para notificações de serviço |
|
Servidor de registro simples |
Registro leve para testes, implementado como um serviço Dubbo padrão |
Referência de metadados
Gerenciamento de metadados de serviço: como o Dubbo lida com metadados de interface entre provedores e consumidores.
Referência de comandos Telnet
Use a interface Telnet integrada para inspecionar serviços em execução, invocar métodos e solucionar problemas pela linha de comando.
Uso de comandos QoS
A porta de comandos de Qualidade de Serviço (QoS) fornece verificações de integridade, desligamento gracioso e diagnósticos em tempo de execução.
Referência do plug-in Maven
Plug-in Maven para aplicações Dubbo.
Melhores práticas
|
Tópico |
Descrição |
|
Uso recomendado |
Abordagens preferenciais para cenários comuns de configuração |
|
Planejamento de capacidade |
Estime hardware e tamanho do cluster com base no tráfego esperado |
|
Relatório de desempenho |
Dados de benchmark e diretrizes de ajuste para otimizar throughput e latência do Dubbo |
|
Relatório de cobertura de testes |
Métricas de cobertura de código e estratégias de teste para serviços Dubbo |
Atualização de versão
|
Tópico |
Descrição |
|
Procedimentos e notas de atualização para 2.7.x |
Alterações disruptivas, etapas de migração e notas de compatibilidade para atualização para o Dubbo 2.7.x |
Erlang
O Apache Dubbo fornece um cliente Erlang. Os tópicos abaixo abordam a configuração e o setup para consumidores e provedores baseados em Erlang.
|
Tópico |
Descrição |
|
Início rápido |
Configure um projeto Dubbo em Erlang e execute um exemplo básico de consumidor-provedor |
|
Configuração do consumidor |
Configure referências de serviço, timeouts e balanceamento de carga para consumidores Erlang |
|
Configuração do provedor |
Registre e exponha serviços Erlang no ecossistema Dubbo |
|
Configuração de serialização |
Escolha e configure um formato de serialização para comunicação Dubbo em Erlang |