Integración de SpringBoot con Dubbo y Zookeeper

Para comenzar, necesitamos instalar y ejecutar Zookeeper utilizando Docker:

docker pull zookeeper

docker run --name zk-server -p 2181:2181 --restart always -d zookeeper:latest

Esto indica que Zookeeper se ha iniciado correctamente.

Conceptos básicos de Zoookeeper y Dubbo

ZooKeeper

ZooKeeper es un servicio de coordinación de aplicaciones distribuidas de código abierto. Proporciona servicios de consistencia para aplicaciones distribuidas, incluyendo: mantenimiento de configuración, servicios de nombres, sincronización distribuida y servicios de grupo.

Dubbo

Dubbo es un framework de servicios distribuidos de código abierto desarrollado por Alibaba. Su característica principal es su arquitectura por capas que permite desacoplar los componentes. Desde la perspectiva del modelo de servicios, Dubbo utiliza un modelo simple donde existen proveedores de servicios (Provider) y consumidores de servicios (Consumer).

Configuración del consumidor (cleinte)

Clase principal de inicio

@SpringBootApplication
public class ClienteApplication {

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

}

Controlador

@RestController
public class GestionController {
    
    @Reference
    private ServicioGestion servicioGestion;

    @GetMapping("/saludar")
    public String saludar() {
        return servicioGestion.saludar();
    }

}

Interfaz del servicio

public interface ServicioGestion {
    String saludar();
}

Archivo application.properties

dubbo.application.name=cliente-gestion
dubbo.registry.address=zookeeper://192.168.0.106:2181
server.port=8081

Configuración del proveedor (servidor)

Clase principal de inicio

@SpringBootApplication
public class ProveedorApplication {

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

}

Interfaz e implementación del servicio

public interface ServicioGestion {
    String saludar();
}
@Service
public class ServicioGestionImpl implements ServicioGestion {
    
    @Override
    public String saludar() {
        System.out.println("¡Solicitud recibida del cliente!");
        return "¡Operación exitosa!";
    }

}

Archivo application.properties

dubbo.application.name=proveedor-gestion
dubbo.registry.address=zookeeper://192.168.0.106:2181
dubbo.scan.base-packages=com.ejemplo

Prueba de la integración

Para verificar que todo funciona correctamente, acceda a través del navegador:

Etiquetas: SpringBoot Dubbo Zookeeper Microservicios java

Publicado el 9-9 04:27