le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
In un'architettura di microservizi, i collegamenti delle chiamate tra i servizi possono essere molto complessi, il che rende difficile l'individuazione del problema e l'ottimizzazione delle prestazioni. Per risolvere questo problema, possiamo utilizzare un sistema di tracciamento distribuito per monitorare e diagnosticare i collegamenti delle richieste in tutta l'architettura dei microservizi. Zipkin e Spring Cloud Sleuth sono due strumenti molto popolari che ci aiutano a raggiungere questo obiettivo.
In un'architettura di microservizi, una richiesta dell'utente può essere elaborata da più servizi. Senza un sistema di tracciamento distribuito, quando si verifica un problema, è difficile per noi determinare in quale servizio si trova il problema o quale collegamento di chiamata al servizio. I sistemi di tracciabilità distribuiti possono aiutarci:
Di seguito utilizzeremo un semplice esempio per mostrare come integrare Zipkin e Spring Cloud Sleuth in un'applicazione Spring Boot.
Innanzitutto, dobbiamo creare un progetto Spring Boot. Puoi utilizzare Spring Inizializr per creare rapidamente un progetto e aggiungere le seguenti dipendenze:
- <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>
esistereapplication.properties
Aggiungi la seguente configurazione al file:
- 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
Specifica l'indirizzo del server Zipkin.spring.sleuth.sampler.probability
Impostare su 1.0 per registrare tutti i dati di traccia.Crea un semplice controller REST per simulare le chiamate di servizio:
- 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;
- }
- }
In questo esempio,/hello
L'endpoint chiamerà un altro servizio/greeting
punto finale.
Puoi avviare rapidamente un server Zipkin tramite Docker:
docker run -d -p 9411:9411 openzipkin/zipkin
Avvia l'applicazione Spring Boot e visitahttp://localhost:8080/hello
punto finale. A questo punto, Spring Cloud Sleuth genererà automaticamente le informazioni di tracciamento per la tua richiesta e invierà queste informazioni al server Zipkin.
Apri il browser e visitahttp://localhost:9411
, vedrai l'interfaccia web di Zipkin. Qui puoi visualizzare tutte le informazioni di tracciamento, incluso il tempo impiegato per ciascuna richiesta, i collegamenti alle chiamate, ecc.
Integrando Zipkin e Spring Cloud Sleuth, possiamo facilmente implementare la tracciabilità distribuita nell'architettura dei microservizi. Questo non solo ci aiuta a individuare e risolvere rapidamente i problemi, ma ci aiuta anche a ottimizzare le prestazioni del sistema. Spero che questo blog ti aiuti a comprendere e utilizzare questi due potenti strumenti.