τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Σε μια αρχιτεκτονική μικροϋπηρεσιών, οι ζεύξεις κλήσεων μεταξύ των υπηρεσιών μπορεί να είναι πολύ περίπλοκες, γεγονός που καθιστά δύσκολη τη θέση του προβλήματος και τη βελτιστοποίηση απόδοσης. Για να λύσουμε αυτό το πρόβλημα, μπορούμε να χρησιμοποιήσουμε ένα κατανεμημένο σύστημα ανίχνευσης για την παρακολούθηση και τη διάγνωση συνδέσμων αιτημάτων σε όλη την αρχιτεκτονική των μικροϋπηρεσιών. Το Zipkin και το Spring Cloud Sleuth είναι δύο πολύ δημοφιλή εργαλεία που μας βοηθούν να πετύχουμε αυτόν τον στόχο.
Σε μια αρχιτεκτονική microservice, ένα αίτημα χρήστη μπορεί να υποβληθεί σε επεξεργασία από πολλές υπηρεσίες. Χωρίς ένα κατανεμημένο σύστημα ανίχνευσης, όταν παρουσιάζεται ένα πρόβλημα, είναι δύσκολο να προσδιοριστεί σε ποια υπηρεσία βρίσκεται το πρόβλημα ή σε ποια σύνδεση κλήσης υπηρεσίας. Τα κατανεμημένα συστήματα ανίχνευσης μπορούν να μας βοηθήσουν:
Παρακάτω θα χρησιμοποιήσουμε ένα απλό παράδειγμα για να δείξουμε πώς να ενσωματώσετε το Zipkin και το Spring Cloud Sleuth σε μια εφαρμογή Spring Boot.
Αρχικά, πρέπει να δημιουργήσουμε ένα έργο Spring Boot. Μπορείτε να χρησιμοποιήσετε το Spring Initializr για να δημιουργήσετε γρήγορα ένα έργο και να προσθέσετε τις ακόλουθες εξαρτήσεις:
- <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>
υπάρχειapplication.properties
Προσθέστε την ακόλουθη διαμόρφωση στο αρχείο:
- 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
Καθορίζει τη διεύθυνση του διακομιστή Zipkin.spring.sleuth.sampler.probability
Ορίστε σε 1.0 για να καταγράψετε όλα τα δεδομένα ίχνους.Δημιουργήστε έναν απλό ελεγκτή REST για προσομοίωση κλήσεων υπηρεσίας:
- 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;
- }
- }
Σε αυτό το παράδειγμα,/hello
Το τελικό σημείο θα καλέσει μια άλλη υπηρεσία/greeting
τελικό σημείο.
Μπορείτε να ξεκινήσετε γρήγορα έναν διακομιστή Zipkin μέσω του Docker:
docker run -d -p 9411:9411 openzipkin/zipkin
Ξεκινήστε την εφαρμογή Spring Boot και επισκεφθείτεhttp://localhost:8080/hello
τελικό σημείο. Σε αυτό το σημείο, το Spring Cloud Sleuth θα δημιουργήσει αυτόματα πληροφορίες ανίχνευσης για το αίτημά σας και θα στείλει αυτές τις πληροφορίες στον διακομιστή Zipkin.
Ανοίξτε το πρόγραμμα περιήγησής σας και επισκεφθείτεhttp://localhost:9411
, θα δείτε τη διεπαφή ιστού του Zipkin. Εδώ, μπορείτε να δείτε όλες τις πληροφορίες παρακολούθησης, συμπεριλαμβανομένου του χρόνου που απαιτείται για κάθε αίτημα, συνδέσμων κλήσεων κ.λπ.
Ενσωματώνοντας το Zipkin και το Spring Cloud Sleuth, μπορούμε εύκολα να εφαρμόσουμε κατανεμημένη ανίχνευση στην αρχιτεκτονική μικροϋπηρεσιών. Αυτό όχι μόνο μας βοηθά να εντοπίζουμε και να επιλύουμε γρήγορα προβλήματα, αλλά και να βελτιστοποιούμε την απόδοση του συστήματος. Ελπίζω αυτό το ιστολόγιο να σας βοηθήσει να κατανοήσετε και να χρησιμοποιήσετε αυτά τα δύο ισχυρά εργαλεία.