informasi kontak saya
Surat[email protected]
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.
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:
Di bawah ini kami akan menggunakan contoh sederhana untuk menunjukkan cara mengintegrasikan Zipkin dan Spring Cloud Sleuth dalam aplikasi Spring Boot.
Pertama, kita perlu membuat proyek Spring Boot. Anda dapat menggunakan Spring Initializr untuk membuat proyek dengan cepat dan menambahkan dependensi berikut:
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-sleuth</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-zipkin</artifactId>
- </dependency>
- </dependencies>
adaapplication.properties
Tambahkan konfigurasi berikut ke file:
- spring.application.name=my-service
- server.port=8080
-
- spring.zipkin.base-url=http://localhost:9411
- spring.sleuth.sampler.probability=1.0
spring.zipkin.base-url
Menentukan alamat server Zipkin.spring.sleuth.sampler.probability
Setel ke 1.0 untuk mencatat semua data jejak.Buat pengontrol REST sederhana untuk menyimulasikan panggilan layanan:
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RestController;
- import org.springframework.web.client.RestTemplate;
-
- @RestController
- public class MyController {
-
- private final RestTemplate restTemplate;
-
- public MyController(RestTemplate restTemplate) {
- this.restTemplate = restTemplate;
- }
-
- @GetMapping("/hello")
- public String hello() {
- String response = restTemplate.getForObject("http://localhost:8081/greeting", String.class);
- return "Hello, " + response;
- }
- }
Dalam contoh ini,/hello
Titik akhir akan memanggil layanan lain/greeting
titik akhir.
Anda dapat dengan cepat memulai server Zipkin melalui Docker:
docker run -d -p 9411:9411 openzipkin/zipkin
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.
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.
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.