Los microservicios Dubbo son sencillos y prácticos

  El blog anterior actualizó la instalación del entorno Dubbo.
  
  Comencemos a escribir un proyecto simple para el combate real. Primero, cree un proyecto vacío y luego compile nuestro proyecto en este proyecto vacío; para
  crear un submódulo, puede crear maven o crear directamente. El proyecto springboot crea submódulos para proveedores de servicios y consumidores. La estructura del proyecto es la siguiente. Una vez
Inserte la descripción de la imagen aquí
  creado el proyecto, escriba servicios para los dos módulos, personalice el contenido del servicio
  
  e inicie la configuración de dubbo, primero configure el servicio proveedor

1. Importe el paquete del tarro
<!-- dubbo -->
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>2.7.8</version>
</dependency>
<!-- zookeeper -->
<dependency>
    <groupId>com.github.sgroschupf</groupId>
    <artifactId>zkclient</artifactId>
    <version>0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-framework</artifactId>
    <version>5.1.0</version>
</dependency>
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-recipes</artifactId>
    <version>5.1.0</version>
</dependency>
<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.6.2</version>
    <!-- 排除日志jar包 -->
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
    </exclusions>
</dependency>
2. Configure la configuración relacionada con dubbo
server.port=8081
# 服务应用名称,消费者通过这个名称去找到这个服务
dubbo.application.name=provider-server
# 注册中心地址
dubbo.registry.address=zookeeper://192.168.0.109:2181
# 需要被注册的服务
dubbo.scan.base-packages=com.provider.service
# 注册超时时间
dubbo.registry.timeout=20000

## 注意,zookeeper的默认超时时间是2秒,如果两秒内连上了就没问题,项目会启动
## 如果两秒内没连上,项目会启动失败
## 所以建议将超时时间设置大一点,或者去更改zookeeper的配置文件:tickTime 参数
3. Agregue anotaciones al servicio de escaneo.
/**
 *	注意这个服务类的注解,新版使用的是DubboService
 *	之前的版本使用的是Service,引入包的时候选择dubbo下面的,否则会扫描失败
 *	或者使用万能注解Component
 **/
import org.apache.dubbo.config.annotation.DubboService;
@DubboService
public class ProviderService implements IProviderService {
    
    
    @Override
    public String demo(String str) {
    
    
        String result = "传了一个参数:" + str;
        System.out.println(result);
        return result;
    }
}

  Una vez que se inicia el proyecto, puede ver que el servicio que registramos en la interfaz de control en segundo plano de dubbo
Inserte la descripción de la imagen aquí
  ahora es el proveedor de servicios que se ejecuta normalmente y luego comenzar a configurar el consumidor de servicios.

1. Importe el paquete del tarro
<!-- dubbo -->
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>2.7.8</version>
</dependency>
<!-- zookeeper -->
<dependency>
    <groupId>com.github.sgroschupf</groupId>
    <artifactId>zkclient</artifactId>
    <version>0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-framework</artifactId>
    <version>5.1.0</version>
</dependency>
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-recipes</artifactId>
    <version>5.1.0</version>
</dependency>
<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.6.2</version>
    <!-- 排除日志jar包 -->
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
    </exclusions>
</dependency>
2. Configure la configuración relacionada con dubbo
server.port=8082
# 消费者名称
dubbo.application.name=consumer-service
# 注册中心地址
dubbo.registry.address=zookeeper://192.168.0.109:2181
# 连接超时时间
dubbo.registry.timeout=20000

## 注意,zookeeper的默认超时时间是2秒,如果两秒内连上了就没问题,项目会启动
## 如果两秒内没连上,项目会启动失败
## 所以建议将超时时间设置大一点,或者去更改zookeeper的配置文件:tickTime 参数
3. Escribir llamada de servicio remota

Hay dos formas de llamar a servicios remotos. Una es crear una clase de interfaz con el mismo paquete y el mismo nombre que el proveedor de servicios en el proyecto del consumidor de servicios, que debe ser exactamente el mismo, de lo contrario fallará al llamar, y el
otra es importarlo en el archivo pom Las coordenadas del proveedor de servicios se utilizan en el desarrollo real para introducir las coordenadas

<!-- 服务提供者的坐标 -->
<dependency>
    <groupId>com.provider</groupId>
    <artifactId>provider-server</artifactId>
    <version>1.0</version>
</dependency>
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Service;
@Service //注意,这里在本地使用,直接加入到本地spring容器
public class ConsumerService implements IConsumerService {
    
    
    @DubboReference //引用远程服务
    private IProviderService providerService;

    @Override
    public void consumerDemo() {
    
    
        System.out.println(providerService.demo("测试"));
    }
}

  Luego prueba por prueba unitaria
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_45481406/article/details/109728364
Recomendado
Clasificación