Mi informacion de contacto
Correo[email protected]
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.
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:
A continuación usaremos un ejemplo simple para mostrar cómo integrar Zipkin y Spring Cloud Sleuth en una aplicación Spring Boot.
Primero, necesitamos crear un proyecto Spring Boot. Puede utilizar Spring Initializr para crear rápidamente un proyecto y agregar las siguientes dependencias:
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-sleuth</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-zipkin</artifactId>
- </dependency>
- </dependencies>
existirapplication.properties
Agregue la siguiente configuración al archivo:
- spring.application.name=my-service
- server.port=8080
-
- spring.zipkin.base-url=http://localhost:9411
- spring.sleuth.sampler.probability=1.0
spring.zipkin.base-url
Especifica la dirección del servidor Zipkin.spring.sleuth.sampler.probability
Establezca en 1.0 para registrar todos los datos de seguimiento.Cree un controlador REST simple para simular llamadas de servicio:
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RestController;
- import org.springframework.web.client.RestTemplate;
-
- @RestController
- public class MyController {
-
- private final RestTemplate restTemplate;
-
- public MyController(RestTemplate restTemplate) {
- this.restTemplate = restTemplate;
- }
-
- @GetMapping("/hello")
- public String hello() {
- String response = restTemplate.getForObject("http://localhost:8081/greeting", String.class);
- return "Hello, " + response;
- }
- }
En este ejemplo,/hello
El punto final llamará a otro servicio./greeting
punto final.
Puede iniciar rápidamente un servidor Zipkin a través de Docker:
docker run -d -p 9411:9411 openzipkin/zipkin
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.
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.
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.