Gateway Service II. Распределенная трассировка запросов
Распределённая трассировка запросов (Distributed Tracing) — это методика, позволяющая отслеживать запросы, проходящие через различные сервисы. В условиях микросервисов,
где
система состоит из множества взаимодействующих элементов, распределённая трассировка помогает разработчикам и инженерам понимать, как запросы перемещаются по системе, и
выявлять узкие места или проблемы производительности.
Источник: Introduction to Brave Для отслеживания, визуализации и анализа распределенной трассировки микросервисов будет использоваться один из наиболее популярных фреймворков - Zipkin (Distributed Tracing Server). Он хорошо интегрирован в экосистему Spring с помощью библиотеки инструментации Micrometer (фреймворк для сбора метрик в Java-приложениях). Расширение для Micrometer OpenZipkin Brave “из коробки” поддерживает работу с трассировкой через Zipkin, добавляя поддержку контекста трассировки. Для отправки данных трассировки в Zipkin используется библиотека Zipkin Reporter Brave, которая работает вместе с Brave (Instrumentation Library).
Нажмите на кнопку Run Query. В браузере отобразятся последние 10 совершенных запросов
Количество отображаемых запросов и промежуток времени можно менять в элементах под этой кнопкой.
Раскройте запрос с наибольшим количеством спанов (7), нажав на кнопку SHOW. Кликая на каждый Span (цветную линию), вы получаете больше сведений о нем. Мы видим путь, который прошел этот запрос к Gateway Service по маршруту /v1/menu-aggregate/1 для получения агрегированной информации о блюде с id=1
Вначале запрос обрабатывается Gateway Service, после чего отправляется в Menu Aggregate Service, который в свою очередь отправляет по одному запросу в Menu Service и Review Service. Эта информация, а также время обработки каждого запроса теперь доступна в Zipkin. Кроме того, во вкладке Dependencies доступна графическая информация о том, как между собой общаются микросервисы:
На этом урок, посвященный началу работы с Gateway Service, завершен. Мы настроили единую точку входа в наше приложение, добавили ограничение количества запросов, а также настроили распределенную трассировку запросов.
Источник: Introduction to Brave Для отслеживания, визуализации и анализа распределенной трассировки микросервисов будет использоваться один из наиболее популярных фреймворков - Zipkin (Distributed Tracing Server). Он хорошо интегрирован в экосистему Spring с помощью библиотеки инструментации Micrometer (фреймворк для сбора метрик в Java-приложениях). Расширение для Micrometer OpenZipkin Brave “из коробки” поддерживает работу с трассировкой через Zipkin, добавляя поддержку контекста трассировки. Для отправки данных трассировки в Zipkin используется библиотека Zipkin Reporter Brave, которая работает вместе с Brave (Instrumentation Library).
Основные компоненты и принципы работы
Конфигурирование трассировок для Zipkin
- Настройка трассировок в Gateway Service
- Настройка трассировок в микросервисах
Обновление Docker Deployment всех микросервисов
Просмотр трассировок в Zipkin
Сервер Zipkin предоставляет интерфейс для просмотра трассировок: http://localhost:9411/zipkin
Нажмите на кнопку Run Query. В браузере отобразятся последние 10 совершенных запросов
Количество отображаемых запросов и промежуток времени можно менять в элементах под этой кнопкой.
Раскройте запрос с наибольшим количеством спанов (7), нажав на кнопку SHOW. Кликая на каждый Span (цветную линию), вы получаете больше сведений о нем. Мы видим путь, который прошел этот запрос к Gateway Service по маршруту /v1/menu-aggregate/1 для получения агрегированной информации о блюде с id=1
Вначале запрос обрабатывается Gateway Service, после чего отправляется в Menu Aggregate Service, который в свою очередь отправляет по одному запросу в Menu Service и Review Service. Эта информация, а также время обработки каждого запроса теперь доступна в Zipkin. Кроме того, во вкладке Dependencies доступна графическая информация о том, как между собой общаются микросервисы:
На этом урок, посвященный началу работы с Gateway Service, завершен. Мы настроили единую точку входа в наше приложение, добавили ограничение количества запросов, а также настроили распределенную трассировку запросов.
Занятие 12: Security, Authorization и Authentication (Keycloak)