Ejemplo de integración del método de anotación SpringBoot + Dubbo

1. Inicie zookeeper registration center, monitor monitoring center y tomcat en el directorio bin de cada paquete en linux, los comandos son los siguientes:
(1) zookeeper: ./zkServer.sh start
(2) monitor: ./server.sh start
(3) tomcat:./startup.sh

Configuración de SpringBoot-dubbo-provider:
2. Cree el paquete spring de springboot-dubbo-provider de forma ideal
e introduzca las siguientes dependencias en el archivo pom del proveedor:

		<dependency>
            <groupId>com.qiuzelin</groupId>
            <artifactId>dubbo-interface</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
        </dependency>

Entre ellos, la dependencia es la dependencia de la interfaz de dubbo y la dependencia de la integración de springboot dubbo.
3. Configure el archivo
application.yml del proveedor, el nombre de la aplicación del proveedor de dubbo, el nombre y la dirección del centro de registro y el número de puerto utilizado por dubbo.

dubbo:
  application:
    name: springboot-dubbo-provider
  registry:
    protocol: zookeeper
    address: 192.168.157.128:2181
  protocol:
    port: 28801

4. Agregue la anotación @EnableDubbo a la clase del método principal:

@SpringBootApplication
@EnableDubbo
public class SpringbootDubboProviderApplication {
    
    

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

}

5. Cree serviceimpl para implementar la interfaz de autointerfaz (interfaz de interfaz en el combate real del marco distribuido de Dubbo en este blog):

package com.qiuzelin.springbootdubboprovider.service;

import com.alibaba.dubbo.config.annotation.Service;
import com.qiuzelin.service.IUserService;
import org.springframework.stereotype.Component;

/**
 * Created with IntelliJ IDEA.
 *
 * @Auther: qiuzelin
 * @Date: 2020/09/30/11:05
 * @Description:
 */
@Component //表明这是spring组件,受到spring管理,因为下面的service是dubbo的service
@Service //dubbo的service,不是spring的service,用来发布服务
public class UserServiceImpl implements IUserService {
    
    

    @Override
    public String hello() {
    
    
        return "springboot+dubbo";
    }
}

Nota: La anotación @Service aquí es un paquete dubbo, y @Component se usa para reemplazar la anotación original de Spring @Service para implementar la administración de Spring.

Configuración de SpringBoot-dubbo-consumer:
6. Configure el archivo pom del consumidor:
agregue la dependencia de la interfaz dubbo y el paquete de dependencia dubbo de Alibaba en springboot

		<dependency>
            <groupId>com.qiuzelin</groupId>
            <artifactId>dubbo-interface</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
        </dependency>

7. Configure el archivo comsumer application.yml:
nombre de la aplicación del consumidor dubbo, nombre y dirección del centro de registro, etc.

dubbo:
  application:
    name: consumer-boot-anotation
  registry:
    protocol: zookeeper
    address: 192.168.157.128:2181

8. De manera similar, agregue la anotación @EnableDubbo a la clase de método principal:

@SpringBootApplication
@EnableDubbo
public class SpringbootDubboConsumerApplication {
    
    

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

}

9. Prueba en la clase de prueba del consumidor:

package com.qiuzelin.springbootdubboconsumer;

import com.alibaba.dubbo.config.annotation.Reference;
import com.qiuzelin.service.IUserService;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class SpringbootDubboConsumerApplicationTests {
    
    

    @Reference
    private IUserService iUserService;

    @Test
    void contextLoads() {
    
    
            System.out.println(iUserService.hello());
            System.in.read();      
    }

}

Entre ellos, @Reference se usa para inyectar objetos de servicios remotos distribuidos, que deben usarse con la configuración de dubbo.

10. Ejecute el método principal del proveedor y el método de prueba del consumidor:
inicie sesión en la dirección de publicación de la máquina virtual dubbo 192.168.157.128:8088 y descubra que el servicio en segundo plano tiene proveedores de servicios, consumidores de servicios y centros de monitoreo:
Inserte la descripción de la imagen aquí
donde: la
dirección del centro de monitoreo proviene de la dirección de la máquina virtual (192.168.157.128:7070), las
direcciones del proveedor de servicios (192.168.157.1:28801) y del consumidor de servicios (192.168.157.1) provienen de la dirección local.

Supongo que te gusta

Origin blog.csdn.net/weixin_41570890/article/details/108948932
Recomendado
Clasificación