API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) · บทเรียน

การติดตามแบบกระจายด้วย Sleuth และ Zipkin

ผสานรวม Spring Cloud Sleuth และ Zipkin เพื่อการติดตามแบบกระจาย ทำให้มองเห็นการไหลของคำขอข้ามระบบไมโครเซอร์วิส

บทเรียน 2 จาก 411 ขั้นตอน

การติดตามแบบกระจายด้วย Sleuth และ Zipkin เป็นบทเรียน API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

What is Distributed Tracing?

In microservices, a single user request often travels through many different services. This makes it hard to follow the request's journey!

Distributed tracing is a technique that helps you track the path of a request as it moves across various services in your system.

Why Trace Microservices?

Without tracing, debugging issues in microservices is like finding a needle in a haystack. You don't know which service failed or where the delay occurred.

  • Debugging: Pinpoint errors faster.
  • Performance: Identify bottlenecks in the request flow.
  • Visibility: Understand how services interact.

Sleuth: The Tracing Enabler

Spring Cloud Sleuth integrates with Spring applications to automatically add tracing information to requests and logs.

It injects unique identifiers into HTTP headers and logging contexts, allowing you to link related operations across services.

Trace & Span IDs Explained

Sleuth uses two main IDs:

  • Trace ID: A unique ID for the entire request, from start to finish, across all services it touches.
  • Span ID: A unique ID for a single operation or unit of work within a service (e.g., an HTTP request or a method call). Spans form a tree structure within a trace.

Add Sleuth Dependency

To enable Sleuth in your Spring Boot application, add the spring-cloud-starter-sleuth dependency to your pom.xml (Maven) or 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: The Tracing UI

While Sleuth adds tracing info, you need a way to collect and visualize it. That's where Zipkin comes in!

Zipkin is a distributed tracing system that collects and stores trace data, then provides a web UI to search and view these traces.

Run Zipkin Server

The easiest way to get Zipkin running locally is using Docker. This command pulls the Zipkin image and starts it on port 9411.

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

You can then access the Zipkin UI at http://localhost:9411 in your browser.

Configure Sleuth for Zipkin

Once Zipkin is running, tell your Sleuth-enabled Spring Boot application where to send its trace data. Add this to your application.properties or application.yml.

application.properties:

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

Now, your application will send trace data to the local Zipkin server.

Tracing a Service Call

Let's see how a simple Spring Boot service logs trace IDs. With Sleuth, your logs will automatically include [appName,traceId,spanId,exportable].

Run this simple app, then make a request to /hello. Check the console logs for the added IDs.

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!";
  }
}

Quick Check

Which of the following statements correctly describe the roles of Spring Cloud Sleuth and Zipkin in distributed tracing? (Select all that apply)

Recap & Next Steps

You've learned how distributed tracing helps in microservices, especially with Spring Cloud Sleuth and Zipkin.

  • Sleuth: Integrates with Spring apps to inject traceId and spanId.
  • Zipkin: Collects these traces and provides a UI for visualization and analysis.

These tools are crucial for understanding and debugging complex distributed systems.

เริ่มต้นได้ฟรี

เรียนรู้ API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
12
บทเรียน
48

คำถามที่พบบ่อย

บทเรียน “การติดตามแบบกระจายด้วย Sleuth และ Zipkin” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การติดตามแบบกระจายด้วย Sleuth และ Zipkin” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) ให้อัปเกรดเป็น CoddyKit PRO คอร์ส API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การติดตามแบบกระจายด้วย Sleuth และ Zipkin”

ผสานรวม Spring Cloud Sleuth และ Zipkin เพื่อการติดตามแบบกระจาย ทำให้มองเห็นการไหลของคำขอข้ามระบบไมโครเซอร์วิส คุณปฏิบัติ API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การติดตามแบบกระจายด้วย Sleuth และ Zipkin” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) นี้ได้ไหม

ได้ บทเรียน API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การยืนยันตัวตนและการอนุญาตด้วย JWT
  2. การติดตามแบบกระจายด้วย Sleuth และ Zipkin
  3. การตั้งค่าแบบรวมศูนย์ด้วยเซิร์ฟเวอร์ตั้งค่า
  4. การเปิดเผยเมตริกด้วย Actuator และ Prometheus
← กลับไปที่ API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway)