[Перевод] Spring Cloud и Spring Boot. Часть 2: использование Zipkin Server для распределенной трассировки

ce109bc4428750ec240120898128aee1

Из прошлой статьи (перевод на хабре, оригинал на англ.) вы узнали, как использовать Eureka Server для обнаружения и регистрации сервисов. В этой статье мы познакомимся с распределенной трассировкой (Distributed Tracing).

Что такое распределенная трассировка

Распределенная трассировка используется для поиска и устранения ошибок в работе микросервисов. Она помогает в отслеживании прохождения запроса через ряд микросервисов. И помимо этого, может использоваться для анализа производительности.

С ее помощью легко определить, какой микросервис упал или где возникли проблемы с производительностью.

В этой статье мы рассмотрим использование Zipkin Server для распределенной трассировки. Для этого нам понадобятся следующие зависимости в pom.xml.


  io.zipkin.java
  zipkin-server
  2.11.7


  io.zipkin.java
  zipkin-autoconfigure-ui
  2.11.7

Запуск Zipkin Server 

Создайте maven-приложение и дайте ему какое-то имя (например, zipkin-server). Для создания Spring-проекта можно воспользоваться https://start.spring.io.

Ваш pom.xml должен выглядеть следующим образом:



  4.0.0

  com.example.zikin.server
  zipkin-server
  0.0.1-SNAPSHOT
  jar

  zipkin-server
  Demo project for Spring Boot

  
     org.springframework.boot
     spring-boot-starter-parent
     2.0.7.RELEASE
      
  

  
     UTF-8
     UTF-8
     1.8
  

  
     
        org.springframework.boot
        spring-boot-starter-web
     
     
        org.springframework.boot
        spring-boot-devtools
        runtime
     
     
        org.springframework.boot
        spring-boot-starter-test
        test
     
     
        io.zipkin.java
        zipkin-server
        2.11.7
     
     
        io.zipkin.java
        zipkin-autoconfigure-ui
        2.11.7
     
  
  
     
        
           org.springframework.boot
           spring-boot-maven-plugin
        
     
  

Теперь откройте ZipkinServerApplication.java и добавьте аннотацию @EnableZipkinServer, как показано ниже.

package com.example.zikin.server;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import zipkin2.server.internal.EnableZipkinServer;

@SpringBootApplication
@EnableZipkinServer
public class ZipkinServerApplication {
  public static void main(String[] args) {
     SpringApplication.run(ZipkinServerApplication.class, args);
  }
}

В файл application.properties, расположенный в src/main/resources, добавьте следующие параметры.

spring.application.name=zipkin-server
server.port=9411

Запустите проект как Java-приложение и перейдите по адресу http://localhost:9411/zipkin.

ae9b1ae4d2627c1edce3302aaf002aca

Здесь пока нет никаких трейсов, так как клиентские приложения еще не зарегистрированы.

Регистрация клиентского приложения в Zipkin Server

Регистрация Eureka Server в Zipkin Server

В предыдущей статье (перевод на хабре, оригинал на англ.) мы посмотрели, как запустить Eureka Server. Теперь его можно зарегистрировать в Zipkin Server, добавив одно свойство в файл application.properties.

spring.zipkin.base-url=http://localhost:9411/

Параметр spring.zipkin.base-url определяет адрес, где находится Zipkin Server.

Вам также необходимо добавить еще одну зависимость в pom.xml приложения Eureka Server.


   org.springframework.cloud
   spring-cloud-starter-zipkin

После того как Eureka Server запустится, в Zipkin Server вы увидите трейсы, а в Zipkin Server UI в поле Service Name появится eureka-server.

60f5a168f5e3c01f35803b36242af828

Регистрация клиентского Spring Boot-приложения в Zipkin Server

Для регистрации любого клиентского приложения, основанного на Spring Boot, нужно добавить одно свойство в файл application.properties.

spring.zipkin.base-url=http://localhost:9411/

И одну зависимость в pom.xml вашего клиентского приложения.


   org.springframework.cloud
   spring-cloud-starter-zipkin

После запуска клиентского приложения вы сможете увидеть его трассировку в Zipkin.

d9f248159c29e018aaef3d6c5956a684

Просмотр деталей трассировки в Zipkin Server

Вы можете посмотреть детали трассировки, нажав на любую запись, показанную на изображении выше.

6684dd7c19d609d208a3eaa6ae2246fb

Теперь вы знаете, как использовать Zipkin Server для распределенной трассировки.

Перевод статьи подготовлен в преддверии старта курса «Разработчик на Spring Framework». Приглашаем всех желающих зарегистрироваться на бесплатный демо-урок по теме «Введение в облака, создание кластера в Mongo DB Atlas».

На уроке участники вместе с экспертом поговорят о видах облаков и настроят бесплатный Mongo DB кластер для своих проектов.

© Habrahabr.ru