Compartir tecnología

Seguimiento distribuido usando Zipkin con Spring Cloud Sleuth

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

En una arquitectura de microservicio, los enlaces de llamadas entre servicios pueden ser muy complejos, lo que dificulta la localización de problemas y la optimización del rendimiento. Para resolver este problema, podemos utilizar un sistema de seguimiento distribuido para monitorear y diagnosticar enlaces de solicitud en toda la arquitectura de microservicios. Zipkin y Spring Cloud Sleuth son dos herramientas muy populares que nos ayudan a lograr este objetivo.

¿Qué es Zipkin y Spring Cloud Sleuth?

  • CremalleraEs un sistema de seguimiento distribuido que puede ayudarnos a recopilar datos de tiempo en una arquitectura de microservicios para que podamos analizar y monitorear el rendimiento del sistema.
  • Detective de nubes de primaveraes un proyecto de Spring Cloud que proporciona capacidades de seguimiento distribuido automatizado para aplicaciones Spring Boot y se puede integrar con Zipkin.

¿Por qué necesita seguimiento distribuido?

En una arquitectura de microservicio, múltiples servicios pueden procesar una solicitud de usuario. Sin un sistema de seguimiento distribuido, cuando ocurre un problema, nos resulta difícil determinar en qué servicio radica el problema o en qué enlace de llamada de servicio. Los sistemas de rastreo distribuidos pueden ayudarnos a:

  • Localice rápidamente los cuellos de botella en el rendimiento.
  • Supervisar las relaciones de llamadas entre servicios.
  • Analizar y optimizar el rendimiento del sistema.

Integre Zipkin y Spring Cloud Sleuth

A continuación usaremos un ejemplo simple para mostrar cómo integrar Zipkin y Spring Cloud Sleuth en una aplicación Spring Boot.

1. Cree un proyecto Spring Boot

Primero, necesitamos crear un proyecto Spring Boot. Puede utilizar Spring Initializr para crear rápidamente un proyecto y agregar las siguientes dependencias:

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-web</artifactId>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.springframework.cloud</groupId>
  8. <artifactId>spring-cloud-starter-sleuth</artifactId>
  9. </dependency>
  10. <dependency>
  11. <groupId>org.springframework.cloud</groupId>
  12. <artifactId>spring-cloud-starter-zipkin</artifactId>
  13. </dependency>
  14. </dependencies>

2. Configurar la aplicación

existirapplication.propertiesAgregue la siguiente configuración al archivo:

  1. spring.application.name=my-service
  2. server.port=8080
  3. spring.zipkin.base-url=http://localhost:9411
  4. spring.sleuth.sampler.probability=1.0
  • spring.zipkin.base-urlEspecifica la dirección del servidor Zipkin.
  • spring.sleuth.sampler.probabilityEstablezca en 1.0 para registrar todos los datos de seguimiento.

3. Escribe código de muestra.

Cree un controlador REST simple para simular llamadas de servicio:

  1. import org.springframework.web.bind.annotation.GetMapping;
  2. import org.springframework.web.bind.annotation.RestController;
  3. import org.springframework.web.client.RestTemplate;
  4. @RestController
  5. public class MyController {
  6. private final RestTemplate restTemplate;
  7. public MyController(RestTemplate restTemplate) {
  8. this.restTemplate = restTemplate;
  9. }
  10. @GetMapping("/hello")
  11. public String hello() {
  12. String response = restTemplate.getForObject("http://localhost:8081/greeting", String.class);
  13. return "Hello, " + response;
  14. }
  15. }

En este ejemplo,/helloEl punto final llamará a otro servicio./greetingpunto final.

4. Inicie el servidor Zipkin

Puede iniciar rápidamente un servidor Zipkin a través de Docker:

docker run -d -p 9411:9411 openzipkin/zipkin

5. Ejecute la aplicación

Inicie su aplicación Spring Boot y visitehttp://localhost:8080/hello punto final. En este punto, Spring Cloud Sleuth generará automáticamente información de seguimiento para su solicitud y enviará esta información al servidor Zipkin.

6. Ver información de seguimiento

Abra su navegador y visitehttp://localhost:9411 , verá la interfaz web de Zipkin. Aquí puede ver toda la información de seguimiento, incluido el tiempo necesario para cada solicitud, enlaces de llamadas, etc.

Resumir

Al integrar Zipkin y Spring Cloud Sleuth, podemos implementar fácilmente el seguimiento distribuido en la arquitectura de microservicios. Esto no solo nos ayuda a localizar y resolver problemas rápidamente, sino que también nos ayuda a optimizar el rendimiento del sistema. Espero que este blog te ayude a comprender y utilizar estas dos poderosas herramientas.

Referencias