Адрес фактического проекта электронной коммерции SpringBoot (20k+star):GitHub.com/macro-positive/…
Резюме
Spring Cloud Sleuth – это инструмент для отслеживания вызовов между сервисами в распределенной системе. Он может визуально отображать процесс вызова запроса. В этой статье мы подробно расскажем о его использовании.
Введение в Spring Cloud Sleuth
По мере того, как наша система становится все больше и больше, взаимосвязь вызовов между различными службами также становится все более и более сложной. Когда клиент инициирует запрос, запрос проходит через несколько служб и, наконец, возвращает результат. Каждая проходящая служба может испытывать задержки или ошибки, что приводит к сбою запроса. В настоящее время нам нужен инструмент отслеживания ссылки на запрос, который поможет нам уточнить служебную ссылку вызова запроса и решить проблему.
Добавить трассировку ссылки запроса в службу
Мы продемонстрируем эту функцию через вызов службы между пользовательской службой и ленточной службой.Когда мы вызываем интерфейс ленточной службы, ленточная служба вызывает интерфейс, предоставляемый пользовательской службой, через RestTemplate.
-
Во-первых, добавьте поддержку функции отслеживания ссылок запросов в пользовательский сервис и ленточный сервис;
-
Добавьте связанные зависимости для пользовательской службы и ленты-службы:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
- Измените файл application.yml и настройте адрес доступа к zipkin-серверу для сбора логов:
spring:
zipkin:
base-url: http://localhost:9411
sleuth:
sampler:
probability: 0.1 #设置Sleuth的抽样收集概率
Интегрируйте Zipkin для получения и анализа логов
Zipkin — это проект Twitter с открытым исходным кодом, который можно использовать для получения и анализа журнала отслеживания ссылок запросов, созданного в Spring Cloud Sleuth.Он предоставляет веб-интерфейс, который помогает нам визуально просматривать информацию отслеживания ссылок запросов.
-
SpringBoot 2.0 и выше больше не нужно собирать zipkin-сервер сам по себе, мы можем скачать zipkin-сервер по этому адресу:repo1.maven.org/maven2/IO/…
-
После завершения загрузки запустите zipkin-server с помощью следующей команды:
java -jar zipkin-server-2.12.9-exec.jar
- Адрес доступа к странице Zipkin:http://localhost:9411
- Запустите eureka-sever, ленточную службу, пользовательскую службу:
- Интерфейс для многократного вызова ленточной службы (Sleuth — это сбор образцов)http://localhost:8301/user/1, после вызова проверьте домашнюю страницу Zipkin и обнаружите, что там уже есть информация об отслеживании ссылок;
- Нажмите View Details, чтобы визуально увидеть ссылку вызова запроса и время, затраченное на прохождение каждой службы:
Хранение информации о трассировке с Elasticsearch
Если мы перезапустим zipkin-сервер, то обнаружим, что вся информация об отслеживании, сохраненная только что, потеряна. Видно, что она хранится в памяти. Иногда нам нужно сохранить всю информацию. Вот пример сохранения в Elasticsearch. чтобы продемонстрировать вниз эту функцию.
Установить эластичный поиск
- Загрузите zip-пакет Elasticsearch 6.2.2 и распакуйте его в указанный каталог, адрес загрузки:woohoo.elastic.co/capable/download…
- Запустите elasticsearch.bat в каталоге bin, чтобы запустить Elasticsearch.
Измените параметры запуска для хранения информации в Elasticsearch.
- Используйте следующую команду для запуска, вы можете сохранить информацию об отслеживании в Elasticsearch, и она не будет потеряна после перезапуска;
# STORAGE_TYPE:表示存储类型 ES_HOSTS:表示ES的访问地址
java -jar zipkin-server-2.12.9-exec.jar --STORAGE_TYPE=elasticsearch --ES_HOSTS=localhost:9200
-
После этого вам необходимо перезапустить службу пользователя и службу ленты, чтобы они вступили в силу.После перезапуска интерфейс службы ленты вызывается несколько раз.http://localhost:8301/user/1;
-
Если вы установили инструмент визуализации Elasticsearch Kibana, вы можете увидеть, что информация об отслеживании была сохранена в нем:
Справочник по дополнительным параметрам запуска
используемые модули
springcloud-learning
├── eureka-server -- eureka注册中心
├── user-service -- 提供User对象CRUD接口的服务
└── ribbon-service -- ribbon服务调用测试服务
Адрес исходного кода проекта
публика
проект торгового центраПолный набор учебных пособий сериализуется,Обратите внимание на общедоступный номерПолучите это прямо сейчас.