Este guia detalha os passos necessários para preparar o ambiente de desenvolvimento e compilar o código-fonte do Dubbo 3, além de fornecer uma visão geral da estrutura de módulos do projeto.
Configuração do Ambiente
Pré-requisitos
- Maven
- Git
- JDK (Java Development Kit)
- IntelliJ IDEA
Compilação do Código-Fonte
Obtenção do Código
Clone o repositório oficial do Dubbo utilizando Git:
git clone git@github.com:apache/dubbo.git
Execução da Compilação
Compile o projeto com o Maven. Recomenda-se o uso do mvnd para um aumento significativo na velocidade de compilação (até 3 vezes mais rápido).
mvn clean install -DskipTests
Utilizando mvnd:
mvnd clean install -DskipTests -Dquickly
A compilação pode levar algum tempo.
Importação no IntelliJ IDEA
Configure o projeto para o IntelliJ IDEA:
mvn idea:idea
Visão Geral dos Módulos
-
dubbo-commonEste módulo contém utilitários e lógica comum para o Dubbo, incluindo implementações de SPI, o mecanismo de "time wheel" e compiladores dinâmicos.
-
dubbo-remotingResponsável pelas comunicações de rede do Dubbo. O módulo
dubbo-remoting-apidefine as abstrações, enquanto outros submódulos (comodubbo-remoting-netty4edubbo-remoting-zookeeper) fornecem implementações concretas utilizando bibliotecas como Netty 4 e Apache Curator para interagir com o ZooKeeper. -
dubbo-rpcAbstrai os protocolos de chamada remota. O módulo
dubbo-rpc-apicontém as definições centrais, e submódulos comodubbo-rpc-dubboimplementam protocolos específicos, dependendo de módulos dedubbo-remoting. Este módulo foca em chamadas ponto a pontto, sem lidar com aspectos de cluster. -
dubbo-registryGerencia a interação com diversos sistemas de registro (service registries). O módulo
dubbo-registry-apidefine a interface, e submódulos comodubbo-registry-zookeeperoferecem implementações específicas para componentes como o ZooKeeper. -
dubbo-monitorO módulo de monitoramento, utilizado para coletar estatísticas de chamadas de serviço, tempos de execução e rastreamento de chamadas distribuídas.
-
dubbo-configResponsável por processar as configurações expostas pelo Dubbo.
dubbo-config-apilida com configurações via API, enquantodubbo-config-springgerencia a integração com o Spring. Isso permite que os usuários configurem o Dubbo sem se aprofundar nos detalhes internos. -
dubbo-metadataTrata dos metadados do serviço. Similar a outros módulos, possui um módulo
apipara abstração e submódulos para implementações específicas. -
dubbo-configcenterMódulo de configuração dinâmica, focado em gerenciar configurações externalizadas e regras de governança de serviços, além de notificar sobre mudanças. Inclui submódulos para integração com variados componentes de descoberta de serviços.
-
dubbo-demoContém exemplos de uso do Dubbo, demonstrando configurações via anotações, API, XML e Spring Boot.
Execução de Exemplos
Para testar a compilação, utilize o exemplo dubbo-demo-annotation. Certifique-se de que um servidor ZooKeeper esteja em execução.
- Inicie a aplicação provedora:
org.apache.dubbo.demo.provider.Application - Inicie a aplicação consumidora:
org.apache.dubbo.demo.consumer.Application
Este artigo cobriu a configuração básica do ambiente de desenvolvimento do Dubbo 3 e apresentou uma visão geral de seus principais módulos.