Advanced Spring Boot 4: Event-Driven Architecture (Kafka) · Pelajaran

Pelacakan Terdistribusi dengan Sleuth/Zipkin

Terapkan pelacakan terdistribusi menggunakan Spring Cloud Sleuth dan Zipkin untuk melacak alur peristiwa di berbagai layanan mikro.

Pelajaran 3 dari 411 langkah

Pelacakan Terdistribusi dengan Sleuth/Zipkin adalah pelajaran Advanced Spring Boot 4: Event-Driven Architecture (Kafka) gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Advanced Spring Boot 4: Event-Driven Architecture (Kafka), dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Advanced Spring Boot 4: Event-Driven Architecture (Kafka) mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

Why Trace Distributed Systems?

In a microservices architecture, a single user request often travels through many different services. This distributed nature makes it incredibly hard to track the flow of requests and pinpoint where issues occur.

Distributed tracing helps you visualize the full journey of a request across all services involved, making debugging and performance monitoring much easier.

Trace and Span: Your Navigation Tools

Distributed tracing relies on two core concepts:

  • Trace: Represents the complete journey of a request through a system, from start to finish. It's like a story of one operation.
  • Span: A single, logical unit of work within a trace. Each operation (e.g., an HTTP request, a database call, sending a Kafka message) gets its own span. Spans have parent-child relationships, showing cause and effect.

Meet Spring Cloud Sleuth

Spring Cloud Sleuth is a powerful library for Spring Boot applications that automatically adds distributed tracing capabilities. It instruments your application to generate, collect, and propagate trace information.

  • It automatically adds trace and span IDs to your logs.
  • It propagates these IDs across service boundaries (HTTP, messaging, etc.).

This means you don't have to manually manage trace IDs in most cases!

Getting Started: Add Sleuth & Zipkin

To integrate Spring Cloud Sleuth into your Spring Boot project, add the following dependencies to your pom.xml:

  • spring-cloud-starter-sleuth: The core tracing library.
  • spring-cloud-sleuth-zipkin: Integrates with Zipkin for trace visualization.
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>

Minimal Sleuth Configuration

After adding the dependencies, a minimal configuration in your application.properties is usually enough to get started. Sleuth will automatically detect and configure itself.

To send traces to a Zipkin server, specify its URL:

spring.application.name=my-kafka-producer-app
spring.zipkin.base-url=http://localhost:9411
spring.sleuth.sampler.probability=1.0

Tracing Across Kafka Messages

One of Sleuth's key features is its ability to propagate trace context across messaging systems like Kafka. When you use Spring's KafkaTemplate to send messages:

  • Sleuth automatically injects trace and span IDs into the Kafka message headers.
  • When a @KafkaListener receives the message, Sleuth extracts these headers and continues the trace, linking the producer's span to the consumer's span.

This creates a continuous trace, even across asynchronous Kafka message flows.

Zipkin: See Your Traces

While Sleuth generates and propagates trace data, Zipkin is the distributed tracing system that collects, stores, and visualizes this data. It provides a user interface where you can:

  • Search for traces by service name, timestamp, or trace ID.
  • View a Gantt chart representation of a trace, showing the sequence and duration of spans.
  • Identify performance bottlenecks and errors across your microservices.

Spin Up Zipkin Locally

For local development and testing, you can easily run a Zipkin server using Docker. This provides a quick way to see your traces without complex setup.

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

Producer with Sleuth Instrumentation

Here's a simple Spring Boot Kafka producer. With Sleuth and Zipkin configured (as shown in earlier scenes), when you run this, Sleuth will automatically add tracing headers to the Kafka message. You would see the traceId and spanId in your application logs and in the Zipkin UI.

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class SleuthKafkaProducerApplication {

    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;

    private static final String TOPIC = "my-traceable-topic";

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

    @GetMapping("/send")
    public String sendMessage(@RequestParam("message") String message) {
        kafkaTemplate.send(TOPIC, message);
        return "Message sent with trace context: " + message;
    }
}

Quick Check: Tracing Concepts

When a Spring Boot application with Spring Cloud Sleuth sends a message to Kafka, which of the following statements are true about trace information?

Lesson Summary: Tracing Your Flow

You've learned about distributed tracing, a critical technique for understanding complex microservice interactions. We covered:

  • The concepts of Trace (full request journey) and Span (individual operation).
  • How Spring Cloud Sleuth automatically instruments Spring Boot applications, including Kafka producers and consumers, to propagate tracing context.
  • The role of Zipkin in collecting and visualizing these traces, providing invaluable insights into your system's behavior.

With these tools, you can effectively monitor and debug your event-driven microservices!

Gratis untuk memulai

Belajar Advanced Spring Boot 4: Event-Driven Architecture (Kafka) dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
12
Pelajaran
48

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pelacakan Terdistribusi dengan Sleuth/Zipkin” gratis?

Ya — teks lengkap “Pelacakan Terdistribusi dengan Sleuth/Zipkin” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Advanced Spring Boot 4: Event-Driven Architecture (Kafka), upgrade ke CoddyKit PRO. Kursus Advanced Spring Boot 4: Event-Driven Architecture (Kafka) mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pelacakan Terdistribusi dengan Sleuth/Zipkin”?

Terapkan pelacakan terdistribusi menggunakan Spring Cloud Sleuth dan Zipkin untuk melacak alur peristiwa di berbagai layanan mikro. Kamu berlatih Advanced Spring Boot 4: Event-Driven Architecture (Kafka) dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Advanced Spring Boot 4: Event-Driven Architecture (Kafka)?

Tidak diperlukan pengalaman sebelumnya. Advanced Spring Boot 4: Event-Driven Architecture (Kafka) di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Pelacakan Terdistribusi dengan Sleuth/Zipkin” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Advanced Spring Boot 4: Event-Driven Architecture (Kafka) ini?

Ya. Setiap pelajaran Advanced Spring Boot 4: Event-Driven Architecture (Kafka) menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Metrik Kafka (JMX) dan Pemeriksaan Kesehatan
  2. Integrasi dengan Prometheus & Grafana
  3. Pelacakan Terdistribusi dengan Sleuth/Zipkin
  4. Memantau Kesenjangan Konsumen dan Menetapkan Peringatan
← Kembali ke Advanced Spring Boot 4: Event-Driven Architecture (Kafka)