Распределенное решение для мониторинга Druid

Java Spring

Что такое друид-монитор

Druid — это очень мощный пул соединений с базой данных, но его мощь не только отражается в ускорении доступа к данным и управлении соединениями как высокопроизводительного пула соединений, но и имеет встроенный мощный инструмент мониторинга:Druid Monitor. Может не только отслеживать источники данных и медленные запросы, но также отслеживать веб-приложения, мониторинг URI, мониторинг сеансов, мониторинг Spring и т. д.

  • ip:port/druid/sql.html

Что такое друид админ

  • Как упоминалось выше, Druid Monitor предоставляет мощные возможности мониторинга,Но в настоящее время он предназначен только для мониторинга одного экземпляра службы.. существуетМикросервисная архитектура[1]С ростом популярности может быть N экземпляров одной и той же службы, и измерение мониторинга должно быть увеличено докластер.

  • После версии друида 1.2.1 официальнаяdruid-admin[2]модуль для решения задачи кластерного мониторинга.

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

Инкапсуляция Spring Cloud Stater

  • Официальный druid-admin в настоящее время находится в разработке и не может быть скомпилирован и запущен напрямую (ошибки пакета зависимостей, java11 не поддерживается и т. д.).

  • druid-admin сам по себе является напрямую запускаемым веб-сервисом, который не очень дружелюбен к существующим сервисам и не может быть выполненspring boot admin[3]вид подключи и играй

  • Поэтому, исходя из вышеуказанных проблем, автор внес соответствующие изменения в druid-admin и напрямую извлек его в Spring Boot Starter для ознакомления и использования.

1. Добавьте зависимости

  <dependency>
   <groupId>com.pig4cloud.plugin</groupId>
   <artifactId>spring-cloud-starter-druid-monitor</artifactId>
   <version>0.0.1</version>
  </dependency>


  <!--注册中心客户端(支持 nacos/eureka/consul)-->
  <dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  </dependency>

2. Получите доступ к реестру и списку служб, которые необходимо отслеживать.

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

# druid-admin 需要监控的列表
monitor:
  applications:
    - pigx-upms-biz
    - pigx-auth

3. Целевая служба предоставляет конечную точку мониторинга друидов.

spring:
  datasource:
    druid:
      stat-view-servlet:
        enabled: true
        allow: ""
        url-pattern: /druid/*

4. Посетите druid-admin для просмотра мониторинга кластера.

  • ip:port/druid/sql.html

Интеграция администратора Spring Boot

  • Введите приведенные выше зависимости и добавьте следующую конфигурацию.
spring:
  boot:
    admin:
      ui:
        external-views:
          - label: "SQL监控"
            url: /druid/sql.html
            order: 2000

ограничения на использование

  • Поскольку проверка входа в монитор druid основана на дизайне сеанса, она неприменима в микросервисах без сохранения состояния. Рекомендуется напрямую открывать все конечные точки, связанные с друидами, и унифицировать разрешения интерфейса через интерфейсный шлюз.

  • В настоящее время данные мониторинга экземпляра хранятся в соответствующей памяти и отображаются только после агрегирования каждым экземпляром во время просмотра и будут сохраняться позже.

использованная литература

[1]

Микросервисная архитектура:https://gitee.com/log4j/pig

[2]

druid-admin: https://github.com/alibaba/druid/tree/master/druid-admin

[3]

spring boot admin: https://github.com/codecentric/spring-boot-admin