Teknologian jakaminen

Hajautettu jäljitys käyttämällä Zipkiniä Spring Cloud Sleuthin kanssa

2024-07-12

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

Mikropalveluarkkitehtuurissa palveluiden väliset puheluyhteydet voivat olla hyvin monimutkaisia, mikä tekee ongelman sijainnin ja suorituskyvyn optimoinnin vaikeaksi. Tämän ongelman ratkaisemiseksi voimme käyttää hajautettua seurantajärjestelmää valvomaan ja diagnosoimaan pyyntölinkkejä koko mikropalveluarkkitehtuurin sisällä. Zipkin ja Spring Cloud Sleuth ovat kaksi erittäin suosittua työkalua, jotka auttavat meitä saavuttamaan tämän tavoitteen.

Mikä on Zipkin and Spring Cloud Sleuth?

  • ZipkinSe on hajautettu seurantajärjestelmä, jonka avulla voimme kerätä ajoitustietoja mikropalveluarkkitehtuurissa, jotta voimme analysoida ja seurata järjestelmän suorituskykyä.
  • Kevätpilvi Sleuthon Spring Cloud -projekti, joka tarjoaa automaattisia hajautettuja jäljitysominaisuuksia Spring Boot -sovelluksille ja joka voidaan integroida Zipkiniin.

Miksi tarvitset hajautettua jäljitystä?

Mikropalveluarkkitehtuurissa käyttäjäpyyntö voidaan käsitellä useissa palveluissa. Ilman hajautettua jäljitysjärjestelmää ongelman ilmetessä meidän on vaikea määrittää, missä palvelussa ongelma piilee tai mikä palvelupuhelulinkki. Hajautetut jäljitysjärjestelmät voivat auttaa meitä:

  • Paikanna nopeasti suorituskyvyn pullonkaulat.
  • Tarkkaile palveluiden välisiä puhelusuhteita.
  • Analysoi ja optimoi järjestelmän suorituskyky.

Integroi Zipkin ja Spring Cloud Sleuth

Alla käytämme yksinkertaista esimerkkiä näyttääksemme kuinka Zipkin ja Spring Cloud Sleuth integroidaan Spring Boot -sovellukseen.

1. Luo Spring Boot -projekti

Ensin meidän on luotava Spring Boot -projekti. Spring Initializrin avulla voit luoda nopeasti projektin ja lisätä seuraavat riippuvuudet:

  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. Määritä sovellus

olla olemassaapplication.propertiesLisää tiedostoon seuraavat asetukset:

  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-urlMäärittää Zipkin-palvelimen osoitteen.
  • spring.sleuth.sampler.probabilityAseta arvoksi 1.0 kirjataksesi kaikki jäljitystiedot.

3. Kirjoita esimerkkikoodi

Luo yksinkertainen REST-ohjain simuloidaksesi palvelukutsuja:

  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. }

Tässä esimerkissä/helloPäätepiste soittaa toiseen palveluun/greetingpäätepiste.

4. Käynnistä Zipkin-palvelin

Voit käynnistää Zipkin-palvelimen nopeasti Dockerin kautta:

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

5. Suorita sovellus

Aloita Spring Boot -sovelluksesi ja vierailehttp://localhost:8080/hello päätepiste. Tässä vaiheessa Spring Cloud Sleuth luo automaattisesti jäljitystiedot pyyntöäsi varten ja lähettää nämä tiedot Zipkin-palvelimelle.

6. Tarkastele seurantatietoja

Avaa selain ja vierailehttp://localhost:9411 , näet Zipkinin verkkokäyttöliittymän. Täällä voit tarkastella kaikkia seurantatietoja, mukaan lukien kuhunkin pyyntöön käytetty aika, puhelulinkit jne.

Tee yhteenveto

Integroimalla Zipkinin ja Spring Cloud Sleuthin voimme helposti toteuttaa hajautetun jäljityksen mikropalveluarkkitehtuurissa. Tämä ei ainoastaan ​​auta meitä löytämään ja ratkaisemaan ongelmia nopeasti, vaan myös optimoimaan järjestelmän suorituskyvyn. Toivon, että tämä blogi auttaa sinua ymmärtämään ja käyttämään näitä kahta tehokasta työkalua.

Viitteet