API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) · leksjon

Distribuert sporing med Sleuth/Zipkin

Integrer Spring Cloud Sleuth og Zipkin for distribuert sporing, slik at De får innsyn i forespørselsflyter på tvers av mikrotjenester.

Leksjon 2 av 411 trinn

Distribuert sporing med Sleuth/Zipkin er en gratis leksjon i API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i API-gateway og reverse proxy (Nginx + Spring Cloud Gateway), og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) inneholder totalt 4 leksjoner.

Hva er distribuert sporing?

I mikrotjenester går én enkelt brukerforespørsel ofte gjennom mange forskjellige tjenester. Det gjør det vanskelig å følge forespørselens vei!

Distribuert sporing er en teknikk som hjelper deg med å følge banen til en forespørsel når den beveger seg gjennom ulike tjenester i systemet ditt.

Hvorfor spore mikrotjenester?

Uten sporing er feilsøking i mikrotjenester som å lete etter en nål i en høystakk. Du vet ikke hvilken tjeneste som feilet, eller hvor forsinkelsen oppsto.

  • Feilsøking: Finn feil raskere.
  • Ytelse: Identifiser flaskehalser i forespørselsflyten.
  • Synlighet: Forstå hvordan tjenestene samhandler.

Sleuth: Tilrettelegging for sporing

Spring Cloud Sleuth integreres med Spring-applikasjoner for automatisk å legge til sporingsinformasjon i forespørsler og logger.

Det setter inn unike identifikatorer i HTTP-headere og loggkontekster, slik at du kan koble sammen relaterte operasjoner på tvers av tjenester.

Forklaring av Trace ID og Span ID

Sleuth bruker to hovedtyper ID-er:

  • Trace ID: En unik ID for hele forespørselen, fra start til slutt, på tvers av alle tjenestene den går gjennom.
  • Span ID: En unik ID for én enkelt operasjon eller arbeidsenhet i en tjeneste (for eksempel en HTTP-forespørsel eller et metodekall). Spans danner en trestruktur i en trace.

Legg til Sleuth-avhengigheten

For å aktivere Sleuth i Spring Boot-applikasjonen din legger du til avhengigheten spring-cloud-starter-sleuth i pom.xml (Maven) eller build.gradle (Gradle).

For Maven:

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency>

For Gradle:

implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'

Zipkin: Brukergrensesnitt for sporing

Sleuth legger til sporingsinformasjon, men du trenger en måte å samle inn og visualisere den på. Det er her Zipkin kommer inn!

Zipkin er et system for distribuert sporing som samler inn og lagrer sporingsdata, og deretter tilbyr et nettbasert brukergrensesnitt for å søke etter og vise disse sporene.

Kjør Zipkin-serveren

Den enkleste måten å kjøre Zipkin lokalt på er å bruke Docker. Denne kommandoen henter Zipkin-imaget og starter det på port 9411.

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

Deretter kan du åpne Zipkin-brukergrensesnittet på http://localhost:9411 i nettleseren.

Konfigurer Sleuth for Zipkin

Når Zipkin kjører, må du fortelle den Sleuth-aktiverte Spring Boot-applikasjonen hvor sporingsdataene skal sendes. Legg dette til i application.properties eller application.yml.

application.properties:

spring.zipkin.base-url=http://localhost:9411

Nå sender applikasjonen sporingsdata til den lokale Zipkin-serveren.

Spor et tjenestekall

La oss se hvordan en enkel Spring Boot-tjeneste logger trace-ID-er. Med Sleuth vil loggene dine automatisk inneholde [appName,traceId,spanId,exportable].

Kjør denne enkle appen, og send deretter en forespørsel til /hello. Se etter de tilføyde ID-ene i konsollloggene.

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 TracingApp {

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

  @GetMapping("/hello")
  public String hello() {
    System.out.println("Hello endpoint called!");
    return "Hello from TracingApp!";
  }
}

Kort kontroll

Hvilke av følgende påstander beskriver rollene til Spring Cloud Sleuth og Zipkin i distribuert sporing korrekt? (Velg alle riktige alternativer)

Oppsummering og neste steg

Du har lært hvordan distribuert sporing er nyttig i mikrotjenester, særlig med Spring Cloud Sleuth og Zipkin.

  • Sleuth: Integreres med Spring-apper for å sette inn traceId og spanId.
  • Zipkin: Samler inn disse sporene og tilbyr et brukergrensesnitt for visualisering og analyse.

Disse verktøyene er avgjørende for å forstå og feilsøke komplekse distribuerte systemer.

Gratis å komme i gang

Lær deg API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Distribuert sporing med Sleuth/Zipkin» gratis?

Ja – hele teksten i «Distribuert sporing med Sleuth/Zipkin» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-kurset, kan du oppgradere til CoddyKit PRO. Kurset i API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) inneholder totalt 4 leksjoner.

Hva lærer jeg i «Distribuert sporing med Sleuth/Zipkin»?

Integrer Spring Cloud Sleuth og Zipkin for distribuert sporing, slik at De får innsyn i forespørselsflyter på tvers av mikrotjenester. Du øver på API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)?

Ingen tidligere erfaring er nødvendig. API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Distribuert sporing med Sleuth/Zipkin»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-leksjonen?

Ja. Alle API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. JWT-autentisering og -autorisasjon
  2. Distribuert sporing med Sleuth/Zipkin
  3. Sentralisert konfigurasjon med Config Server
  4. Eksponering av måledata med Actuator og Prometheus
← Tilbake til API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)