Druid监控分布式实现过程解析

什么是 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-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 相关的端点,通过前置网关统一接口权限。

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • SpringBoot集成阿里巴巴Druid监控的示例代码

    druid是阿里巴巴开源的数据库连接池,提供了优秀的对数据库操作的监控功能,本文要讲解一下springboot项目怎么集成druid. 本文在基于jpa的项目下开发,首先在pom文件中额外加入druid依赖,pom文件如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&qu

  • Spring Boot使用Druid进行维度的统计和监控

    Druid Druid:一款为监控而生的数据库连接池框架,整个项目由数据库连接池.插件框架和SQL解析器组成. Druid功能介于PowerDrill和Dremel之间,它几乎实现了Dremel的所有功能,并且从PowerDrill吸收一些有趣的数据格式.Druid允许以类似Dremel和PowerDrill的方式进行单表查询,同时还增加了一些新特性,如为局部嵌套数据结构提供列式存储格式.为快速过滤做索引.实时摄取和查询.高容错的分布式体系架构等. Spring Boot spring框架作为J

  • Spring Boot使用Druid和监控配置方法

    Spring Boot默认的数据源是:org.apache.tomcat.jdbc.pool.DataSource Druid是Java语言中最好的数据库连接池,并且能够提供强大的监控和扩展功能. 下面来说明如何在 Spring Boot 中配置使用Druid (1)添加Maven依赖 (或jar包)\ <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId&g

  • eBay 打造基于 Apache Druid 的大数据实时监控系统

    首先需要注意的是,本文即将提到的 Druid,并非阿里巴巴的 Druid 数据库连接池,而是另一个大数据场景下的解决方案:Apache Druid. Apache Druid 是一个用于大数据实时查询和分析的高容错.高性能开源分布式时序数据库系统,旨在快速处理大规模的数据,并能够实现快速查询和分析.尤其是当发生代码部署.机器故障以及其他产品系统遇到宕机等情况时,Druid 仍能够保持 100% 正常运行.创建 Druid 的最初意图主要是为了解决查询延迟问题,当时试图使用 Hadoop 来实现交

  • SpringBoot配置Druid数据监控代码实例

    druid,一个为监控而生的数据库连接池,提供可视化界面来查看sql执行情况. 1.pom文件引入druid数据源 <!--druid数据源--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.8</version> </dependency> 2.新建一个DrruidC

  • Druid基本配置及内置监控使用_动力节点Java学院整理

    1.  使用方法 首先从http://repo1.maven.org/maven2/com/alibaba/druid/ 下载最新的jar包.如果想使用最新的源码编译,可以从https://github.com/alibaba/druid 下载源码,然后使用maven命令行,或者导入到eclipse中进行编译. 和dbcp类似,druid的配置项如下: 配置 缺省值 说明 name 配置这个属性的意义在于,如果存在多个数据源,监控的时候 可以通过名字来区分开来.如果没有配置,将会生成一个名字,

  • spring boot基于DRUID实现数据源监控过程解析

    这篇文章主要介绍了spring boot基于DRUID实现数据源监控过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 随着需求和技术的日益革新,spring boot框架是越来越流行,她也越来越多地出现在我们的项目中,当然最主要的原因还是因为spring boot构建项目实在是太爽了,构建方便,开发简单,而且效率高.今天我们并不是来专门学习spring boot项目的,我们要讲的是数据源的加密和监控,监控到好说,就是不监控也没什么问题,但

  • 使用SpringBoot简单了解Druid的监控系统的配置方法

    Druid 介绍 说起 Druid,大家首先想到的是阿里的 Druid 数据库连接池 Apache Druid 具有以下特点: 亚秒级 OLAP 查询,包括多维过滤.Ad-hoc 的属性分组.快速聚合数据等等. 实时的数据消费,真正做到数据摄入实时.查询结果实时. 高效的多租户能力,最高可以做到几千用户同时在线查询. 扩展性强,支持 PB 级数据.千亿级事件快速处理,支持每秒数千查询并发. 极高的高可用保障,支持滚动升级. Druid监控系统作用 查看慢SQL [ 可进行对 SQL 优化 ] 是

  • Druid监控分布式实现过程解析

    什么是 Druid Monitor Druid 是一个非常强大的数据库连接池,但是它的强大并不仅仅体现在作为一个高性能连接池加快数据访问上和连接管理上,它内置了一个强大的监控工具:Druid Monitor.不仅可以监控数据源和慢查询,还可以监控 Web 应用.URI 监控.Session 监控.Spring 监控等. ip:port/druid/sql.html 什么是 Druid Admin 如上文所述, Druid Monitor 提供强大的监控能力,但目前仅是针对对单个服务实例的监控.

  • Javas使用Redlock实现分布式锁过程解析

    一.redlock简介 在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段.实现高效的分布式锁有三个属性需要考虑: 安全属性:互斥,不管什么时候,只有一个客户端持有锁 效率属性A:不会死锁 效率属性B:容错,只要大多数redis节点能够正常工作,客户端端都能获取和释放锁. Redlock是redis官方提出的实现分布式锁管理器的算法.这个算法会比一般的普通方法更加安全可靠.关于这个算法的讨论可以看下官方文档. 二.怎么用java使用 redlock 在pom文件引入redis和

  • Spring Boot 整合 Druid过程解析

    这篇文章主要介绍了Spring Boot 整合 Druid过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 概述 Druid 是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池.插件框架和 SQL 解析器组成.该项目主要是为了扩展 JDBC 的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证.统计 SQL 信息.SQL 性能收集.SQL 注入检查.SQL 翻译等,程序员可以通过定制来实现自己需要的功能. Druid 是

  • SpringCloud turbine监控实现过程解析

    这篇文章主要介绍了SpringCloud turbine监控实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w

  • Netty分布式ByteBuf使用directArena分配缓冲区过程解析

    目录 directArena分配缓冲区 回到newDirectBuffer中 我们跟到newByteBuf方法中 跟到reuse方法中 跟到allocate方法中 1.首先在缓存上进行分配 2.如果在缓存上分配不成功, 则实际分配一块内存 上一小节简单分析了PooledByteBufAllocator中, 线程局部缓存和arean的相关逻辑, 这一小节简单分析下directArena分配缓冲区的相关过程 directArena分配缓冲区 回到newDirectBuffer中 protected

  • Apache SkyWalking 监控 MySQL Server 实战解析

    目录 正文 监控 MySQL Server 安装过程 docker compose 部署 正文 Apache SkyWalking 在本月初发布了 SkyWalking Backend.UI 的 9.2.0 版本 以及 SkyWalking Java Agent 8.12.0 版本,其中就有笔者贡献的 hutool-http client 5.x 插件,以后大家通过 hutool 工具发送的 http 请求也可以出现在分布式链路中了. 另外,社区宣布计划在 2022 年 11 月 30 日结束所

  • Spring boot整合log4j2过程解析

    这篇文章主要介绍了Spring boot整合log4j2过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 以前整合过log4j2,但是今天再次整合发现都忘记了,而且也没有记下来 1.pom.xml中 (1)把spring-boot-starter-web包下面的spring-boot-starter-logging排除 <dependency> <groupId>org.springframework.boot</gr

  • SpringBoot实现拦截器、过滤器、监听器过程解析

    这篇文章主要介绍了SpringBoot实现拦截器.过滤器.监听器过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 过滤器 过滤器简介 过滤器的英文名称为 Filter, 是 Servlet 技术中最实用的技术.如同它的名字一样,过滤器是处于客户端和服务器资源文件之间的一道过滤网,帮助我们过滤掉一些不符合要求的请求,通常用作 Session 校验,判断用户权限,如果不符合设定条件,则会被拦截到特殊的地址或者基于特殊的响应. 过滤器的使用 首

  • Spring Cloud Sleuth整合zipkin过程解析

    这篇文章主要介绍了Spring Cloud Sleuth整合zipkin过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 SpringCloud Sleuth 简介 Spring Cloud Sleuth为Spring Cloud实现了分布式跟踪解决方案. Spring Cloud Sleuth借鉴了Dapper的术语. Span:基本的工作单元.Span包括一个64位的唯一ID,一个64位trace码,描述信息,时间戳事件,key-va

随机推荐