Primeiros passos com o desenvolvimento do Dubbo

1. Gere o andaime do projeto por meio de templates

O Dubbo Initializer  pode ser usado para gerar rapidamente andaimes de projetos Java para ajudar a simplificar a construção de projetos de microsserviços, configuração básica, gerenciamento de dependências de componentes, etc.

O inicializador ainda está sendo atualizado e mais suporte ao recurso Dubbo será lançado um após o outro.

Selecione a versão Dubbo

O inicializador será usado para  dubbo-spring-boot-starter criar um projeto Spring Boot, então primeiro precisamos escolher a versão do Dubbo e do Spring Boot.

inicializador-escolha-versão

Insira as informações básicas do projeto

A seguir, preencha as informações básicas do projeto, incluindo coordenadas do projeto, nome do projeto, nome do pacote, versão do JDK, etc.

informações do projeto do inicializador

Escolha a estrutura do projeto

Existem duas estruturas de projeto para escolher, a saber,  单模块 e  多模块, neste exemplo escolhemos  单模块.

arquitetura do projeto inicializador

  • Módulo único, todos os códigos dos componentes são armazenados em um módulo, caracterizado por uma estrutura simples.
  • Multimódulo, o projeto gerado possui  APIdois Service módulos, que  API são usados ​​para armazenar a definição do serviço Dubbo e Service para armazenar a implementação do serviço ou lógica de chamada. Normalmente, o multimódulo é mais propício para separar o gerenciamento e a liberação da definição de serviço.

Selecione componentes dependentes

Selecionamos os seguintes componentes dependentes para o modelo por padrão:

  • Componentes Dubbo
    • Interface Java
    • registro, tratador de zoológico
    • ProtocoloTCP
  • Componentes comuns de microsserviços
    • Rede
    • Meu sapato
    • mecanismo de modelo

dependências do inicializador

Com base nas opções acima, o projeto gerado usará o Zookeeper como centro de registro, usará o protocolo Dubbo2 TCP de alto desempenho como protocolo de comunicação RPC e adicionará dependências e exemplos para componentes como Web e Mybatis.

Nota: Os componentes Dubbo selecionados acima também são opções padrão, ou seja, sem adicionar manualmente nenhuma dependência, clique em Geração de Código logo após abrir a página, e o código gerado conterá os componentes Dubbo acima.

Se você adicionar componentes dependentes manualmente, preste atenção às restrições implícitas de relacionamento de combinação entre os componentes dependentes do Dubbo, como

  • Se [API de serviço Dubbo]-[IDL] for selecionado, atualmente apenas o protocolo [HTTP/2] ou [gRPC] em [Protocolo Dubbo] será suportado.
  • No mesmo grupo de dependências, apenas um do mesmo tipo de dependências pode ser selecionado. Por exemplo, no grupo [Dubbo Registry&Config&Metadata], apenas um de [Zookeeper] e [Nacos] pode ser selecionado da perspectiva do centro de registro. Modifique a configuração manualmente no código. Mas o centro de registro e o centro de configuração podem ser selecionados separadamente, por exemplo, Zookeeper e Apollo podem ser selecionados ao mesmo tempo.

Gerar modelo de projeto

  • Clique em "Procurar código" para navegar pela estrutura e código do projeto on-line
  • Clique em "Obter código" para gerar o URL de download do projeto

visualização do inicializador

Depois que o projeto for baixado para o local, após descompactar e importar para o IDE, você poderá desenvolver aplicativos Dubbo personalizados conforme necessário.

2. Serviços de Desenvolvimento

publicar e ligar

Através de um código de exemplo simples do Springboot, ele mostra o lançamento e a invocação do serviço Dubbo

Este artigo demonstrará como construir e implantar rapidamente um aplicativo de microsserviço baseado em amostras Dubbo. Endereço do código: dubbo-samples-develop  O código é dividido em três módulos

  • API
  • provedor de desenvolvimento
  • desenvolver-consumidor

Preparar

Este código de exemplo é baseado no Springboot 3.0

1. Primeiro, um centro de registro disponível Zookeeper, Nacos e Redis estão disponíveis.

2. Crie um novo projeto maven e adicione as seguintes dependências

        <!-- registry dependency -->
        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
            <version>${nacos.version}</version>
        </dependency>

        <!-- dubbo dependency-->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>${dubbo.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

O centro de registro usado neste exemplo é o Nacos. Para usar o ZK, substitua o pacote nacos-client pela versão correspondente do pacote do cliente zk.

publicar serviço

1. Defina a interface de serviço

public interface DevelopService {
    String invoke(String param);
}

2. Implementação de interface de serviço

@DubboService(group = "group1",version = "1.0")
public class DevelopProviderServiceV1 implements DevelopService{
    @Override
    public String invoke(String param) {
        StringBuilder s = new StringBuilder();
        s.append("ServiceV1 param:").append(param);
        return s.toString();
    }
}

Usando a anotação @DubboService, Dubbo registrará o serviço correspondente no Spring, chamará o método de exportação de serviço correspondente após o início do Spring e registrará o serviço no centro de registro, para que o consumidor possa descobrir o serviço que publicamos e chamá-lo

3. Adicionar configuração Dubbo

Adicione a configuração relacionada a application.properties ou crie um novo dubbo.properties para salvar a configuração relacionada ao dubbo, o conteúdo é o seguinte:

dubbo.application.name=provider

# Enable token verification for each invocation
dubbo.provider.token=false

# Specify the registry address
# dubbo.registry.address=nacos://localhost:8848?username=nacos&password=nacos
dubbo.registry.address=nacos://${nacos.address:localhost}:8848?username=nacos&password=nacos

dubbo.protocol.name=dubbo
dubbo.protocol.port=20881

4. Inicie o serviço

Para criar uma classe de inicialização Springboot, você precisa adicionar a anotação @EnableDubbo para habilitar a função de configuração automática do Dubbo

@EnableDubbo
@SpringBootApplication
public class DevelopApplication {

    public static void main(String[] args) {
        SpringApplication.run(DevelopApplication.class, args);
    }
}

Após a inicialização bem-sucedida, você poderá ver a lista de serviços correspondente na central de registro, conforme mostrado na figura: ![serviceList](/imgs/v3/develop/develop-service-list.png)

Serviço de chamada

Crie a classe DemoTask e apresente os serviços que precisam ser chamados por meio da anotação @DubboReference. O serviço remoto pode ser chamado como um método local.

//实现CommandLineRunner 让Springboot启动后调用run方法
@Component
public class DemoTask implements CommandLineRunner {
    @DubboReference(group = "group1",version = "1.0")
    private DevelopService developService;

    @Override
    public void run(String... args) throws Exception {
        //调用DevelopService的group1分组实现
        System.out.println("Dubbo Remote Return ======> " + developService.invoke("1"));
    }
}

iniciar impressão de serviço

Dubbo Remote Return ======> ServiceV1 param:1

Indica que a chamada de serviço foi bem-sucedida

Acho que você gosta

Origin blog.csdn.net/leesinbad/article/details/132443283
Recomendado
Clasificación