minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Em uma arquitetura de microsserviços, os links de chamadas entre serviços podem ser muito complexos, o que dificulta a localização do problema e a otimização do desempenho. Para resolver esse problema, podemos usar um sistema de rastreamento distribuído para monitorar e diagnosticar links de solicitação em toda a arquitetura de microsserviços. Zipkin e Spring Cloud Sleuth são duas ferramentas muito populares que nos ajudam a atingir esse objetivo.
Numa arquitetura de microsserviços, uma solicitação do usuário pode ser processada por vários serviços. Sem um sistema de rastreamento distribuído, quando ocorre um problema, é difícil determinar em qual serviço o problema está ou em qual link de chamada de serviço. Os sistemas de rastreamento distribuído podem nos ajudar:
Abaixo usaremos um exemplo simples para mostrar como integrar Zipkin e Spring Cloud Sleuth em uma aplicação Spring Boot.
Primeiro, precisamos criar um projeto Spring Boot. Você pode usar Spring Initializr para criar rapidamente um projeto e adicionar as seguintes dependências:
- <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>
existirapplication.properties
Adicione a seguinte configuração ao arquivo:
- 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
Especifica o endereço do servidor Zipkin.spring.sleuth.sampler.probability
Defina como 1.0 para registrar todos os dados de rastreamento.Crie um controlador REST simples para simular chamadas de serviço:
- 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;
- }
- }
Neste exemplo,/hello
O endpoint chamará outro serviço/greeting
ponto final.
Você pode iniciar rapidamente um servidor Zipkin através do Docker:
docker run -d -p 9411:9411 openzipkin/zipkin
Inicie seu aplicativo Spring Boot e visitehttp://localhost:8080/hello
ponto final. Neste ponto, o Spring Cloud Sleuth gerará automaticamente informações de rastreamento para sua solicitação e enviará essas informações ao servidor Zipkin.
Abra seu navegador e visitehttp://localhost:9411
, você verá a interface web do Zipkin. Aqui, você pode visualizar todas as informações de rastreamento, incluindo o tempo necessário para cada solicitação, links de chamadas, etc.
Ao integrar o Zipkin e o Spring Cloud Sleuth, podemos implementar facilmente o rastreamento distribuído na arquitetura de microsserviços. Isso não apenas nos ajuda a localizar e resolver problemas rapidamente, mas também a otimizar o desempenho do sistema. Espero que este blog ajude você a compreender e usar essas duas ferramentas poderosas.