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.
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ä:
Alla käytämme yksinkertaista esimerkkiä näyttääksemme kuinka Zipkin ja Spring Cloud Sleuth integroidaan Spring Boot -sovellukseen.
Ensin meidän on luotava Spring Boot -projekti. Spring Initializrin avulla voit luoda nopeasti projektin ja lisätä seuraavat riippuvuudet:
- <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>
olla olemassaapplication.properties
Lisää tiedostoon seuraavat asetukset:
- 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
Määrittää Zipkin-palvelimen osoitteen.spring.sleuth.sampler.probability
Aseta arvoksi 1.0 kirjataksesi kaikki jäljitystiedot.Luo yksinkertainen REST-ohjain simuloidaksesi palvelukutsuja:
- 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;
- }
- }
Tässä esimerkissä/hello
Päätepiste soittaa toiseen palveluun/greeting
päätepiste.
Voit käynnistää Zipkin-palvelimen nopeasti Dockerin kautta:
docker run -d -p 9411:9411 openzipkin/zipkin
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.
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.
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.