Esta página se tradujo automáticamente con la API de traducción de Google Cloud.
Algunas páginas se pueden leer mejor en su totalidad.
Apache Zookeeper es un servicio de coordinación distribuida para sistemas distribuidos. Se utiliza para gestionar grandes sistemas distribuidos. Spring Boot es un marco Java popular para desarrollar microservicios.
En esta publicación, aprenderemos cómo integrar Spring Boot con Apache Zookeeper. Usaremos Zookeeper para coordinar y sincronizar nuestros microservicios Spring Boot.
Antes de que podamos comenzar a usar Zookeeper, debemos instalarlo. Podemos instalar Zookeeper usando Homebrew en macOS:
$ brew install zookeeper
O podemos descargar la versión binaria de Zookeeper desde el [sitio web de Apache Zookeeper] (https://zookeeper.apache.org/).
Una vez instalado Zookeeper, podemos iniciarlo usando el siguiente comando:
$ zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties
Podemos crear un proyecto Spring Boot usando Spring Initializr. Usaremos las siguientes dependencias:
Necesitamos configurar nuestra aplicación Spring Boot para usar Zookeeper. Podemos hacer esto agregando las siguientes propiedades a nuestro archivo application.properties
:
spring.cloud.zookeeper.connect-string=localhost:2181
spring.cloud.zookeeper.discovery.instance-id=${spring.application.name}
spring.cloud.zookeeper.discovery.root=/${spring.application.name}
spring.cloud.zookeeper.discovery.service-name=${spring.application.name}
spring.cloud.zookeeper.discovery.enabled=true
Podemos crear un servicio Spring Boot usando la anotación @SpringBootApplication
:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Podemos agregar un controlador Rest a nuestro servicio usando la anotación @RestController
:
@RestController
public class GreetingController {
@GetMapping("/greeting")
public String greeting() {
return "Hello, world!";
}
}
Podemos probar nuestro servicio enviando una solicitud GET
al punto final /saludo
:
$ curl localhost:8080/greeting
Hello, world!
Una vez que nuestro servicio esté en funcionamiento, debemos registrarlo con Zookeeper. Podemos hacer esto usando la anotación @DiscoveryClient
:
@SpringBootApplication
@DiscoveryClient
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Una vez registrado nuestro servicio en Zookeeper, podemos acceder a él desde otro servicio. Podemos hacer esto inyectando un DiscoveryClient
en nuestro controlador:
@RestController
public class GreetingController {
@Autowired
private DiscoveryClient discoveryClient;
@GetMapping("/greeting")
public String greeting() {
List<ServiceInstance> instances = discoveryClient.getInstances("greeting-service");
if (instances.isEmpty()) {
return "Hello, world!";
}
String url = instances.get(0).getUri().toString();
return "Hello, world! (from " + url + ")";
}
}
En esta publicación, aprendimos cómo integrar Spring Boot con Apache Zookeeper. Usamos Zookeeper para coordinar y sincronizar nuestros microservicios Spring Boot.