时间:2021-05-20
什么是 Druid Monitor
Druid 是一个非常强大的数据库连接池,但是它的强大并不仅仅体现在作为一个高性能连接池加快数据访问上和连接管理上,它内置了一个强大的监控工具:Druid Monitor。不仅可以监控数据源和慢查询,还可以监控 Web 应用、URI 监控、Session 监控、Spring 监控等。
ip:port/druid/sql.html
什么是 Druid Admin
如上文所述, Druid Monitor 提供强大的监控能力,但目前仅是针对对单个服务实例的监控。 在微服务架构日益流行的时下,同一个服务可能有会有 N 个实例,监控维度需要上升至 集群。
官方在 druid 1.2.1 版本后,提供 druid-admin 模块 来解决集群监控的问题。
如下图我们可以在原有的监控集群上可以动态的切换服务名称,做到一个监控入口,实现不同服务的监控切换。
Spring Cloud Stater 封装
目前官方的 druid-admin 正在开发工程中,并不能直接编译运行(依赖包错误、不支持 java11 等)。
druid-admin 本身是一个直接可运行的 web 服务,对目前已有服务不太友好,不能做到 spring boot admin 那种即插即用
所以基于上述问题,笔者对 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-auth3. 目标服务暴露 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 相关的端点,通过前置网关统一接口权限。
目前实例监控数据是保存在对应内存中,仅在查看时通过每个实例汇总后显示,后期会实现持久化。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前面讲完了Redis的分布式锁的实现,接下来讲Redisson的分布式锁的实现,一般提及到Redis的分布式锁我们更多的使用的是Redisson的分布式锁,Re
分布式锁一般有三种实现方式:1、数据库乐观锁;2、基于Redis的分布式锁;3、基于ZooKeeper的分布式锁。本文将介绍第二种方式,基于Redis实现分布式
微电网(Micro-Grid)也译为微网,是指由分布式电源、储能装置、能量转换装置、负荷、监控和保护装置等组成的小型发配电系统。 微电网的提出旨在实现分布式电
Redis实现分布式锁的几种方法总结分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统
分布式操作系统(Distributedoperatingsystem),是分布式软件系统的重要组成部分,负责管理分布式处理系统资源、控制分布式程序运行等。