Todos os produtos
Search
Central de documentação

Enterprise Distributed Application Service:Guia do desenvolvedor para Dubbo

Última atualização: Jun 26, 2026

O Enterprise Distributed Application Service (EDAS) oferece suporte ao Apache Dubbo para a criação de aplicações de microsserviços. Este guia aborda o sistema de extensão da Service Provider Interface (SPI) do Dubbo, os mecanismos internos do framework e seus princípios de design.

Funcionamento do sistema de extensão SPI

O Dubbo utiliza um mecanismo leve de SPI para manter seu núcleo modular. Cada componente principal — protocolos, balanceadores de carga, roteadores e registros — é definido como um ponto de extensão plugável. Isso permite:

  • Substituir implementações nativas alterando uma única propriedade de configuração, sem modificar o código do framework.

  • Adicionar implementações personalizadas implementando uma interface Java e registrando-a por meio do arquivo SPI.

  • Estender o comportamento de forma transparente, pois o Dubbo trata extensões de terceiros e implementações nativas igualmente.

Para compreender a arquitetura subjacente, consulte os tópicos sobre design do framework e carregamento de SPI abaixo.

Implementações de extensão SPI

O Dubbo define mais de 20 pontos de extensão, organizados aqui por função. Cada ponto de extensão corresponde a uma interface Java que aceita implementações personalizadas.

RPC e gerenciamento de tráfego

Ponto de extensão

O que controla

Protocol

Protocolo de rede para chamadas remotas

Filter

Cadeia de filtros de requisição e resposta para preocupações transversais, como logs ou autenticação

Cluster

Estratégia de tolerância a falhas quando uma chamada falha (por exemplo, failover, failfast, forking)

Router

Regras de roteamento que determinam quais provedores recebem tráfego

LoadBalance

Estratégia de distribuição de requisições entre vários provedores

Merger

Lógica de mesclagem de resultados para invocações bifurcadas

Descoberta de serviços e configuração

Ponto de extensão

O que controla

Registry

Integração com registro de serviços

Monitor

Coleta de métricas e relatório de dados de monitoramento

Transporte e serialização

Ponto de extensão

O que controla

Transporter

Camada de transporte de rede

Exchanger

Padrão de troca de requisição-resposta sobre a camada de transporte

Networker

Gerenciamento de topologia de rede para cenários com múltiplos registros

Serialization

Formato de serialização de dados

Ciclo de vida e proxy

Ponto de extensão

O que controla

InvokerListener

Callback acionado em eventos de invocação de serviço

ExporterListener

Callback acionado em eventos de exportação de serviço

ExtensionFactory

Fábrica para criação e gerenciamento de instâncias de extensão

ProxyFactory

Fábrica para criação de proxies de serviço

Compiler

Compilação dinâmica de código-fonte Java

Dispatcher

Estratégia de despacho de threads para mensagens recebidas

ThreadPool

Estratégia de pool de threads para execução de serviços

Diagnóstico e utilitários

Ponto de extensão

O que controla

TelnetHandler

Handler para comandos de gerenciamento em tempo de execução baseados em telnet

StatusChecker

Lógica de verificação de integridade para relatórios de status de serviço

PageHandler

Renderização de páginas de status para o servidor HTTP nativo

Container

Gerenciamento do ciclo de vida do contêiner de serviços

Cache

Estratégia de cache de resultados para invocações repetidas

Validation

Validação de parâmetros antes da invocação

LoggerAdapter

Adaptador para integração de diferentes frameworks de log

Mecanismos internos do framework

Os tópicos a seguir explicam como o Dubbo foi construído e como o mecanismo SPI funciona internamente.

Tópico

O que aborda

source code build

Como compilar o código-fonte do Dubbo a partir do repositório

Framework design

Arquitetura geral, design em camadas e dependências entre módulos

SPI loading

Como o Dubbo descobre, carrega e instancia extensões SPI

Implementation details

Implementação interna dos componentes principais

Configuration center

Gerenciamento centralizado de configurações para serviços distribuídos

Public agreement

Convenções de protocolo público e contratos compartilhados entre os componentes do Dubbo

Princípios de design

O framework Dubbo segue um conjunto de princípios de design documentados nestes tópicos. Use-os como referência ao contribuir com o framework ou desenvolver extensões personalizadas.

Tópico

O que aborda

Attention to detail

A importância de casos extremos e decisões sutis de design no código do framework

Foundational design patterns

Padrões de design fundamentais e convenções usadas em toda a base de código

Extensibility and incremental extension

Como projetar extensões compatíveis com versões anteriores e combináveis

Configuration design

Diretrizes para projetar parâmetros de configuração e valores padrão

Robustness

Tratamento de erros, padrões de resiliência e codificação defensiva no framework

Fool-proof design

Prevenção de uso indevido por meio de APIs claras, padrões adequados e validação de entrada

Extension point refactoring

Quando e como refatorar interfaces de pontos de extensão

Padrões de qualidade de código

Tópico

O que aborda

Versioning

Convenções de numeração de versão e garantias de compatibilidade

Checklist

Lista de verificação pré-lançamento para alterações no framework

Code smells

Antipadrões comuns a evitar no código do framework Dubbo

Coding conventions

Estilo de código, nomenclatura e padrões de formatação

Compatibility testing

Estratégia de testes para compatibilidade retroativa e futura