Berbagi teknologi

Pelacakan terdistribusi menggunakan Zipkin dengan Spring Cloud Sleuth

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Dalam arsitektur layanan mikro, tautan panggilan antar layanan bisa menjadi sangat kompleks, sehingga menyulitkan lokasi masalah dan optimalisasi kinerja. Untuk mengatasi masalah ini, kita dapat menggunakan sistem penelusuran terdistribusi untuk memantau dan mendiagnosis tautan permintaan di seluruh arsitektur layanan mikro. Zipkin dan Spring Cloud Sleuth adalah dua alat yang sangat populer yang membantu kami mencapai tujuan ini.

Apa itu Zipkin dan Spring Cloud Sleuth?

  • ritsletingIni adalah sistem pelacakan terdistribusi yang dapat membantu kami mengumpulkan data waktu dalam arsitektur layanan mikro sehingga kami dapat menganalisis dan memantau kinerja sistem.
  • Detektif Awan Musim Semiadalah proyek Spring Cloud yang menyediakan kemampuan penelusuran terdistribusi otomatis untuk aplikasi Spring Boot dan dapat diintegrasikan dengan Zipkin.

Mengapa Anda memerlukan penelusuran terdistribusi?

Dalam arsitektur layanan mikro, permintaan pengguna dapat diproses oleh beberapa layanan. Tanpa sistem penelusuran terdistribusi, ketika terjadi masalah, sulit untuk menentukan di layanan mana masalahnya, atau di link panggilan layanan mana. Sistem penelusuran terdistribusi dapat membantu kita:

  • Temukan hambatan kinerja dengan cepat.
  • Pantau hubungan panggilan antar layanan.
  • Menganalisis dan mengoptimalkan kinerja sistem.

Integrasikan Zipkin dan Spring Cloud Sleuth

Di bawah ini kami akan menggunakan contoh sederhana untuk menunjukkan cara mengintegrasikan Zipkin dan Spring Cloud Sleuth dalam aplikasi Spring Boot.

1. Buat proyek Spring Boot

Pertama, kita perlu membuat proyek Spring Boot. Anda dapat menggunakan Spring Initializr untuk membuat proyek dengan cepat dan menambahkan dependensi berikut:

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-web</artifactId>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.springframework.cloud</groupId>
  8. <artifactId>spring-cloud-starter-sleuth</artifactId>
  9. </dependency>
  10. <dependency>
  11. <groupId>org.springframework.cloud</groupId>
  12. <artifactId>spring-cloud-starter-zipkin</artifactId>
  13. </dependency>
  14. </dependencies>

2. Konfigurasikan aplikasi

adaapplication.propertiesTambahkan konfigurasi berikut ke file:

  1. spring.application.name=my-service
  2. server.port=8080
  3. spring.zipkin.base-url=http://localhost:9411
  4. spring.sleuth.sampler.probability=1.0
  • spring.zipkin.base-urlMenentukan alamat server Zipkin.
  • spring.sleuth.sampler.probabilitySetel ke 1.0 untuk mencatat semua data jejak.

3. Tulis kode contoh

Buat pengontrol REST sederhana untuk menyimulasikan panggilan layanan:

  1. import org.springframework.web.bind.annotation.GetMapping;
  2. import org.springframework.web.bind.annotation.RestController;
  3. import org.springframework.web.client.RestTemplate;
  4. @RestController
  5. public class MyController {
  6. private final RestTemplate restTemplate;
  7. public MyController(RestTemplate restTemplate) {
  8. this.restTemplate = restTemplate;
  9. }
  10. @GetMapping("/hello")
  11. public String hello() {
  12. String response = restTemplate.getForObject("http://localhost:8081/greeting", String.class);
  13. return "Hello, " + response;
  14. }
  15. }

Dalam contoh ini,/helloTitik akhir akan memanggil layanan lain/greetingtitik akhir.

4. Mulai server Zipkin

Anda dapat dengan cepat memulai server Zipkin melalui Docker:

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

5. Jalankan aplikasinya

Mulai aplikasi Spring Boot Anda dan kunjungihttp://localhost:8080/hello titik akhir. Pada titik ini, Spring Cloud Sleuth akan secara otomatis menghasilkan informasi penelusuran untuk permintaan Anda dan mengirimkan informasi ini ke server Zipkin.

6. Lihat informasi pelacakan

Buka browser Anda dan kunjungihttp://localhost:9411 , Anda akan melihat antarmuka web Zipkin. Di sini, Anda dapat melihat semua informasi pelacakan, termasuk waktu yang dibutuhkan untuk setiap permintaan, tautan panggilan, dll.

Meringkaskan

Dengan mengintegrasikan Zipkin dan Spring Cloud Sleuth, kita dapat dengan mudah mengimplementasikan penelusuran terdistribusi dalam arsitektur layanan mikro. Ini tidak hanya membantu kami menemukan dan memecahkan masalah dengan cepat, namun juga membantu kami mengoptimalkan kinerja sistem. Saya harap blog ini membantu Anda memahami dan menggunakan dua alat canggih ini.

Referensi