美文网首页
Druid 监控分布式解决方案

Druid 监控分布式解决方案

作者: 是阿胖胖吖 | 来源:发表于2020-10-21 14:37 被阅读0次

    什么是 Druid Monitor

    Druid 是一个非常强大的数据库连接池,但是它的强大并不仅仅体现在作为一个高性能连接池加快数据访问上和连接管理上,它内置了一个强大的监控工具:Druid Monitor。不仅可以监控数据源和慢查询,还可以监控 Web 应用、URI 监控、Session 监控、Spring 监控等。

    ip:port/druid/sql.html

    福利 福利 福利 免费领取Java架构技能地图 注意了是免费送

    点击我免费领取

    什么是 Druid Admin

    如上文所述, Druid Monitor 提供强大的监控能力,但目前仅是针对对单个服务实例的监控。 在微服务架构[1]日益流行的时下,同一个服务可能有会有 N 个实例,监控维度需要上升至集群

    官方在 druid 1.2.1 版本后,提供 druid-admin[2] 模块 来解决集群监控的问题。

    如下图我们可以在原有的监控集群上可以动态的切换服务名称,做到一个监控入口,实现不同服务的监控切换

    Spring Cloud Stater 封装

    目前官方的 druid-admin 正在开发工程中,并不能直接编译运行(依赖包错误、不支持 java11 等)。

    druid-admin 本身是一个直接可运行的 web 服务,对目前已有服务不太友好,不能做到 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. 目标服务暴露 druid 监控端点

    spring:

      datasource:

        druid:

          stat-view-servlet:

            enabled: true

            allow: ""

            url-pattern: /druid/*

    复制代码

    4. 访问 druid-admin 查看集群监控

    ip:port/druid/sql.html

    整合 Spring Boot Admin

    引入上述依赖,增加如下配置即可

    spring:

      boot:

        admin:

          ui:

            external-views:

              - label: "SQL监控"

                url: /druid/sql.html

                order: 2000

    使用限制

    由于 druid monitor 的登录校验基于 session 设计,所有在无状态的微服务中不适用。建议直接暴露所有 druid 相关的端点,通过前置网关统一接口权限。

    目前实例监控数据是保存在对应内存中,仅在查看时通过每个实例汇总后显示,后期会实现持久化。

    相关文章

      网友评论

          本文标题:Druid 监控分布式解决方案

          本文链接:https://www.haomeiwen.com/subject/hytemktx.html