druid分布式mysql_Druid 监控分布式解决方案

什么是 Druid Monitor

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

ip:port/druid/sql.html

4f8424a858afac2f63c10f3b717000de.png

什么是 Druid Admin

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

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

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

8f5c30acfe2fa8fc3e94be2c2c51b48a.png

Spring Cloud Stater 封装

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

druid-admin 本身是一个直接可运行的 web 服务,对目前已有服务不太友好,不能做到 spring boot admin 那种即插即用

所以基于上述问题,笔者对 druid-admin 进行了相关的修改,直接抽取成 spring boot starter 引入即用。

1. 增加依赖

com.pig4cloud.plugin

spring-cloud-starter-druid-monitor

0.0.1

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-discovery

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

9f928e56f9a6470672a35ebd1eedacb0.png

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

spring:

boot:

admin:

ui:

external-views:

- label: "SQL监控"

url: /druid/sql.html

order: 2000

使用限制

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值