Spring Boot 4-mikrotjänster och REST API:er · Lektion

Distribuerad spårning med Zipkin

Integrera Zipkin för distribuerad spårning från början till slut mellan mikrotjänster och felsök komplexa interaktioner.

Lektion 3 av 312 steg

Distribuerad spårning med Zipkin är en gratis lektion i Spring Boot 4-mikrotjänster och REST API:er på CoddyKit. Detta är lektion 3 av 3. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Spring Boot 4-mikrotjänster och REST API:er, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Spring Boot 4-mikrotjänster och REST API:er innehåller totalt 3 lektioner.

Mikrotjänsternas felsökningslabyrint

I en mikrotjänstarkitektur kan en enskild användarförfrågan färdas genom många olika tjänster. När något går fel är det som att leta efter en nål i en höstack!

Traditionell loggning visar bara vad som hände i en enskild tjänst. Vi behöver ett sätt att se hela förloppet.

Vad är distribuerad tracing?

Distribuerad tracing är en teknik för att övervaka och observera förfrågningar när de flödar genom olika komponenter i ett distribuerat system.

  • Den hjälper dig att förstå hur tjänster samverkar.
  • Den identifierar flaskhalsar i prestandan.
  • Den gör felsökning över tjänstegränser mycket enklare.

Introduktion till Zipkin

Zipkin är ett distribuerat system för tracing med öppen källkod.

Det hjälper dig att samla in tidsdata som behövs för att felsöka latensproblem i mikrotjänstarkitekturer. Det hanterar både insamling och sökning av dessa data.

Centrala begrepp: Trace och Span

Två grundläggande begrepp inom distribuerad tracing är Traces och Spans:

  • En Trace representerar en enskild förfrågan eller ett arbetsflöde när det färdas genom hela systemet.
  • En Span är en enskild operation inom en trace. Den har ett namn, ett unikt ID och ett överordnat ID, såvida den inte är root span.

Tänk på en Trace som en berättelse och Spans som de enskilda kapitlen.

Så fungerar Zipkin

Zipkin fungerar genom att samla in data från dina instrumenterade tjänster.

Det grundläggande flödet ser ut så här:

  1. Dina tjänster skickar tracingdata (spans) till Zipkin Collector.
  2. Collectorn lagrar dessa data, till exempel i minnet, MySQL eller Elasticsearch.
  3. Du använder Zipkin UI för att visualisera och analysera traces.

Spring Cloud Sleuths magi

För Spring Boot-program gör Spring Cloud Sleuth integrationen med Zipkin mycket enkel.

Sleuth lägger automatiskt till tracinginformation i dina loggar och HTTP-headers och skickar den till Zipkin utan att du behöver skriva särskilt mycket kod manuellt.

Konfigurera Zipkin lokalt

Det enklaste sättet att köra en Zipkin-server lokalt är att använda Docker. Om Docker är installerat kör du bara följande kommando i terminalen:

docker run -p 9411:9411 openzipkin/zipkin

När servern körs kan du öppna Zipkin-gränssnittet på http://localhost:9411.

Enkel instrumentering av tjänster

För att aktivera tracing lägger du till beroendena för Sleuth och Zipkin (spring-cloud-starter-sleuth och spring-cloud-sleuth-zipkin). Konfigurera sedan application.properties så att den pekar på Zipkin-servern:

spring.application.name=my-traced-service
spring.zipkin.base-url=http://localhost:9411
spring.sleuth.sampler.probability=1.0 (spåra alla förfrågningar)

Nu ska vi titta på en enkel tjänst som skickar trace-information!

Spårning av ett endpoint-anrop

Här är en enkel Spring Boot-tjänst. Med egenskaperna från föregående scen och Sleuth-beroendena skickar den automatiskt trace-data till Zipkin när du anropar dess /hello-endpoint.

Prova att köra den och gå sedan till http://localhost:8080/hello. Kontrollera Zipkin-gränssnittet!

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class MyTracedServiceApplication {

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

    @GetMapping("/hello")
    public String hello() {
        // Sleuth automatically adds tracing to this request
        System.out.println("Processing /hello request...");
        return "Hello from Traced Service!";
    }
}

Utforska Zipkin-gränssnittet

När du har gjort förfrågningar till tjänsten som spåras öppnar du http://localhost:9411 i webbläsaren.

Du kan söka efter traces med tjänstenamn eller trace-ID. Gränssnittet visar en visuell tidslinje för varje trace, inklusive dess spans, varaktighet och beroenden mellan tjänster.

Snabbtest: tracing-termer

Testa din förståelse av distribuerad tracing med Zipkin.

Sammanfattning: felsökning med Zipkin

Bra jobbat! Du har lärt dig hur distribuerad tracing underlättar felsökning av mikrotjänster och hur Zipkin och Spring Cloud Sleuth gör detta enkelt.

  • Distribuerad tracing visualiserar förfrågningarnas flöde.
  • Zipkin samlar in och visar trace-data.
  • Sleuth automatiserar instrumentering för Spring Boot.

Detta hjälper dig att snabbt hitta problem och optimera prestandan i dina tjänster.

Gratis att börja

Lär dig Java med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
24
Lektioner
93

Vanliga frågor

Är lektionen ”Distribuerad spårning med Zipkin” gratis?

Ja – hela texten till ”Distribuerad spårning med Zipkin” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Spring Boot 4-mikrotjänster och REST API:er, kan Ni uppgradera till CoddyKit PRO. Kursen i Spring Boot 4-mikrotjänster och REST API:er innehåller totalt 3 lektioner.

Vad lär jag mig i ”Distribuerad spårning med Zipkin”?

Integrera Zipkin för distribuerad spårning från början till slut mellan mikrotjänster och felsök komplexa interaktioner. Ni övar på Spring Boot 4-mikrotjänster och REST API:er med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Spring Boot 4-mikrotjänster och REST API:er?

Du behöver inga förkunskaper. Utbildningen i Spring Boot 4-mikrotjänster och REST API:er på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 3.

Hur lång tid tar lektionen ”Distribuerad spårning med Zipkin”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Spring Boot 4-mikrotjänster och REST API:er-lektionen?

Ja. Varje Spring Boot 4-mikrotjänster och REST API:er-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Circuit breakers med Resilience4j
  2. Implementera fallback-lösningar och tidsgränser
  3. Distribuerad spårning med Zipkin
← Tillbaka till Spring Boot 4-mikrotjänster och REST API:er