精华内容
下载资源
问答
  • 阿里巴巴druid可视化

    2018-04-16 15:39:46
    <!-- 连接池 阿里巴巴数据源 全世界最牛逼的...druid.version>1.0.23</druid.version> <dependency> <groupId>com.alibaba</groupId> ...

    <!-- 连接池 阿里巴巴数据源 全世界最牛逼的data source 没有之一 -->
    
    <druid.version>1.0.23</druid.version>
    
                <dependency>
                    <groupId>com.alibaba</groupId>
                    <artifactId>druid</artifactId>
                    <version>${druid.version}</version>
                </dependency>

    个人笔记,仅供参考

    展开全文
  • SpringBoot(伍)SpringBoot整合Druid实现数据库可视化监控SpringBoot(伍)SpringBoot整合Druid实现数据库可视化监控SpringBoot(伍)SpringBoot整合Druid实现数据库可视化监控SpringBoot(伍)SpringBoot整合Druid实现...
  • 德鲁伊仪表板 可视化Druid查询的UI
  • Druid简介(可视化

    2021-06-30 22:01:57
    Druid简介

    http://www.apache-druid.cn

    Druid是什么?

    Druid是一个实时多维OLAP分析的数据处理系统。它出生于MetaMarkets公司,孵化于Apache。
    Druid走ROLAP路线,实时摄取数据,实时出结果。不像Kylin一样有一个显式的预计算过程。

    Druid能做什么?

    列式存储,好处是查询的时候可以只返回指定的列的数据。
    可扩展的分布式架构,可以达到上百台的规模。
    并行计算,查询可以并行计算。
    数据摄入支持实时和批量。这里实时的意思是输入即可查询。典型的lambda架构。
    运维友好。
    云原生架构,高容错性。
    支持索引,便于快速查询。
    基于时间的分区自动聚合。

    Druid的适用场景

    快速聚合的OLAP分析,实时分析,大数据量,高可用容忍单点故障。
    优点:
            1)知识流式和批量数据导入
            2)lambda架构,将实时数据和历史数据结合
            3)高并发亚秒级查询
            4)内置查询缓存
            5)存储优化,bitmap索引,压缩,字典编码
            6)完善的监控
            7)支持数据导入上卷。支持灵活的数据存储用于查询时间粒度的配置。

    缺点:
            1)时间序列数据
            2)有限的join能力
            3)SQL语法支持不全
            4)不支持多时间维度,所有的维度为string类型
            5)查询语法不友好,有一定的学习成本

    Druid的原理和架构

    Druid的设计参考了Google的dremel,powerdrill。
    Druid的主要角色进程如下
            Coordinator        管理数据可用性
            overload                控制分配数据ingestion的workload
            broker                处理客户端的查询请求
            router                负责将请求路由到broker,coordinator,和overloads
            historical                负责存储可被查询的数据
            middlemanager        负责ingest数据

    Druid进程可被任意部署,但是为了理解与部署组织方便,这些进程分为三类
        Master:coordinator,overload负责数据可用和ingest
        Query:broker and router,负责处理外部请求
        Data:historical and middlemanager, 负责实际的ingest负载与数据存储

    Druid的局限

    展开全文
  • SpringBoot(伍)SpringBoot整合Druid实现数据库可视化监控 文章目录SpringBoot(伍)SpringBoot整合Druid实现数据库可视化监控1、初始化信息1.1、数据库脚本1.2、编写相关代码...

    SpringBoot(伍)SpringBoot整合Druid实现数据库可视化监控

    本文介绍了SpringBoot整合Druid实现数据库可视化监控的配置过程,供参考

    1、初始化信息

    1.1、数据库脚本

    新建数据库表及初始化一些数据,脚本如下:

    create table if not exists david.t_student_info
    (
    	id varchar(20) not null comment '主键'
    		primary key,
    	name varchar(50) default ' ' null comment '姓名',
    	age decimal(3) default 20 null comment '年龄',
    	sex char default 'M' null comment '性别 M-男,W-女',
    	phone varchar(20) null comment '手机号',
    	email varchar(30) null comment '电子邮箱',
    	rsv1 varchar(100) null comment '备注字段'
    )
    comment '学生信息表';
    INSERT INTO david.t_student_info (id, name, age, sex, phone, email, rsv1) VALUES ('10001', '张三', 20, 'M', '13988887777', 'zhangsan@163.com', '备注');
    INSERT INTO david.t_student_info (id, name, age, sex, phone, email, rsv1) VALUES ('10002', '李四', 18, 'W', '15988887777', 'lisi@163.com', '李四是张三的妹妹');
    INSERT INTO david.t_student_info (id, name, age, sex, phone, email, rsv1) VALUES ('10003', '苍老师', 18, 'W', '15866668888', 'canglaoshi@163.com', '这里是苍老师的备注');
    INSERT INTO david.t_student_info (id, name, age, sex, phone, email, rsv1) VALUES ('10004', '刘备', 30, 'M', '18666666666', 'liubei@163.com', '我是刘皇叔,专门卖草鞋');
    INSERT INTO david.t_student_info (id, name, age, sex, phone, email, rsv1) VALUES ('10005', '关羽', 29, 'M', '18655555555', 'guanyu@163.com', '我是关羽,卖绿豆的');
    INSERT INTO david.t_student_info (id, name, age, sex, phone, email, rsv1) VALUES ('10006', ' 孙悟空', 500, 'M', '19100002222', 'wukong@163.com', '我是孙悟空,我有金箍棒');
    INSERT INTO david.t_student_info (id, name, age, sex, phone, email, rsv1) VALUES ('10007', ' 猪八戒', 488, 'M', '18900003333', 'bajie@163.com', '猪八戒');
    INSERT INTO david.t_student_info (id, name, age, sex, phone, email, rsv1) VALUES ('10008', ' 沙僧', 200, 'M', '18678652388', 'shaseng@163.com', '我是沙僧');
    INSERT INTO david.t_student_info (id, name, age, sex, phone, email, rsv1) VALUES ('10009', ' 唐僧', 25, 'M', '18766809012', 'shaseng@163.com', '我是唐僧,你们都是弟弟');
    INSERT INTO david.t_student_info (id, name, age, sex, phone, email, rsv1) VALUES ('10010', ' 老树龙井', 20, 'W', '15988801234', 'longjing@163.com', 'laoshulongjing');
    INSERT INTO david.t_student_info (id, name, age, sex, phone, email, rsv1) VALUES ('10011', ' 苏檀儿', 22, 'W', '18809826678', 'sutaner@163.com', '苏檀儿');
    INSERT INTO david.t_student_info (id, name, age, sex, phone, email, rsv1) VALUES ('10012', ' 宁毅', 20, 'M', '15900008888', 'ningyi@163.com', '宁毅');
    INSERT INTO david.t_student_info (id, name, age, sex, phone, email, rsv1) VALUES ('10013', ' 小婵', 18, 'W', '18566780092', 'xiaochan@163.com', '我是小婵');
    
    

    1.2、编写相关代码

    编写Controller,Service,Dao,Mapper等,实现业务逻辑

    StudInfoController

    /**
     * @author zhang_wei
     * @version 1.0.0
     * @Classname StudInfoController
     * @Date 2021/2/26 11:07
     * @Created by zhang_wei
     * @since 1.0.0
     */
    @Controller
    public class StudInfoController {
    
        Logger logger = LoggerFactory.getLogger(StudInfoController.class);
    
        @Autowired
        StudentInfoService studentInfoService;
    
        @RequestMapping("/getAll")
        @ResponseBody
        public List<StudentInfo> getAllStudentInfos() {
            List<StudentInfo> result = studentInfoService.findAll();
            logger.info("result={}", result);
            return result;
        }
    }
    

    StudentInfoServiceImpl

    /**
     * @author zhang_wei
     * @version 1.0.0
     * @Classname StudentInfoServiceImpl
     * @Date 2021/2/26 15:35
     * @Created by zhang_wei
     * @since 1.0.0
     */
    @Service
    public class StudentInfoServiceImpl implements StudentInfoService {
    
        Logger logger = LoggerFactory.getLogger(StudentInfoServiceImpl.class);
    
        @Autowired
        StudentInfoDAO studentInfoDAO;
    
        @Override
        public List<StudentInfo> findAll() {
            return studentInfoDAO.findAll();
        }
    }
    

    StudentInfoDAO

    @Repository
    public interface StudentInfoDAO {
        int deleteByPrimaryKey(String id);
    
        int insert(StudentInfo record);
    
        int insertSelective(StudentInfo record);
    
        StudentInfo selectByPrimaryKey(String id);
    
        int updateByPrimaryKeySelective(StudentInfo record);
    
        int updateByPrimaryKey(StudentInfo record);
    
        /**
         * 查询所有
         * @return
         */
        List<StudentInfo> findAll();
    }
    

    StudentInfoDao.xml

       <select id="findAll" parameterType="java.lang.String" resultMap="BaseResultMap">
            select
            <include refid="Base_Column_List"/>
            from t_student_info
        </select>
    

    2、配置

    2.1、修改配置文件

    在application.properties中增加如下的配置,即可启用druid的监控功能

    application.properties

    # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
    spring.datasource.druid.filters=stat,slf4j
    # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
    spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000;
    
    #可以设置Druid的监控密码
    #spring.datasource.druid.stat-view-servlet.login-username=zhangsan
    #spring.datasource.druid.stat-view-servlet.login-password=123456
    

    2.2、讲解关键配置

    DruidStatViewServletConfiguration

    我们的配置通过DruidStatViewServletConfiguration这个类注册了StatViewServlet嵌入式Servlet,默认拦截的请求地址是/druid/*,代码如下:

    public class DruidStatViewServletConfiguration {
        public DruidStatViewServletConfiguration() {
        }
        @Bean
        public ServletRegistrationBean statViewServletRegistrationBean(DruidStatProperties properties) {
            StatViewServlet config = properties.getStatViewServlet();
            ServletRegistrationBean registrationBean = new ServletRegistrationBean();
            registrationBean.setServlet(new com.alibaba.druid.support.http.StatViewServlet());
            registrationBean.addUrlMappings(new String[]{config.getUrlPattern() != null ? config.getUrlPattern() : "/druid/*"});
            if (config.getAllow() != null) {
                registrationBean.addInitParameter("allow", config.getAllow());
            }
            if (config.getDeny() != null) {
                registrationBean.addInitParameter("deny", config.getDeny());
            }
            if (config.getLoginUsername() != null) {
                registrationBean.addInitParameter("loginUsername", config.getLoginUsername());
            }
            if (config.getLoginPassword() != null) {
                registrationBean.addInitParameter("loginPassword", config.getLoginPassword());
            }
            if (config.getResetEnable() != null) {
                registrationBean.addInitParameter("resetEnable", config.getResetEnable());
            }
            return registrationBean;
        }
    }
    

    我们启动容器可以看一看到控制台的输出:

    拦截/druid/*的Servlet被注册进了容器

    在这里插入图片描述

    DruidStatProperties

    我们可以看到相关的配置属性Java对象为com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties

    DruidStatProperties有两个静态内部类WebStatFilterStatViewServlet

    这里我们关心StatViewServlet类,

    allow为IP白名单,默认为所有

    loginUsername可以指定登录Druid监控台的用户名,对应:spring.datasource.druid.stat-view-servlet.login-username

    loginPassword指定Druid监控台的密码,对应:spring.datasource.druid.stat-view-servlet.login-password

    public static class StatViewServlet {
            private boolean enabled = true;
            private String urlPattern;
            private String allow;
            private String deny;
            private String loginUsername;
            private String loginPassword;
            private String resetEnable;
    
            public StatViewServlet() {
            }
    }
    

    StatViewServlet

    com.alibaba.druid.support.http.StatViewServlet

    这个类里面指定了静态资源的存放地址,

    在jar包中

    public class StatViewServlet extends ResourceServlet {
        private static final Log LOG = LogFactory.getLog(StatViewServlet.class);
        private static final long serialVersionUID = 1L;
        public static final String PARAM_NAME_RESET_ENABLE = "resetEnable";
        public static final String PARAM_NAME_JMX_URL = "jmxUrl";
        public static final String PARAM_NAME_JMX_USERNAME = "jmxUsername";
        public static final String PARAM_NAME_JMX_PASSWORD = "jmxPassword";
        private DruidStatService statService = DruidStatService.getInstance();
        private String jmxUrl = null;
        private String jmxUsername = null;
        private String jmxPassword = null;
        private MBeanServerConnection conn = null;
    
        public StatViewServlet() {
            super("support/http/resources");
        }
    }
    

    在这里插入图片描述

    3、测试验证

    启动服务之后,我们访问http://localhost:8080/getAll之后,

    打开druid的监控页面http://localhost:8080/druid/index.html

    3.1、getAll

    访问getAll,浏览器正常返回

    在这里插入图片描述

    3.2、druid监控台

    如果设置了访问密码的话,则需要登录,如下:

    在这里插入图片描述

    登录成功之后,可以在上面选择选项卡,查看我们需要的内容,

    例如这里,我们可以查看URI的访问记录,如下:

    在这里插入图片描述

    展开全文
  • Druid+SSM+可视化监控界面

    千次阅读 2018-02-10 20:43:47
    druid.version&gt;0.2.23&lt;/druid.version&gt; &lt;dependency&gt;  &lt;groupId&gt;com.alibaba&lt;/groupId&gt;  &lt;artifactId&gt;druid&lt;...

    先看效果:


    关键步骤说明:

    前提条件,自己先搭建一个ssm框架,然后再继续下面的步骤

    1.导入jar包

     <druid.version>0.2.23</druid.version>  
    
     <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>${druid.version}</version>
     </dependency>     

    2.配置数据源

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/srnswx?characterEncoding=utf-8
    jdbc.username=root
    jdbc.password=123456
    
    druid.initialSize=10
    druid.minIdle=10
    druid.maxActive=50
    druid.maxWait=60000
    druid.timeBetweenEvictionRunsMillis=60000
    druid.minEvictableIdleTimeMillis=300000
    druid.validationQuery=SELECT 'x'
    druid.testWhileIdle=true
    druid.testOnBorrow=false
    druid.testOnReturn=false
    druid.poolPreparedStatements=true
    druid.maxPoolPreparedStatementPerConnectionSize=20
    druid.filters=stat
     <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"  
            destroy-method="close">  
            <property name="driverClassName" value="${jdbc.driver}" />  
            <property name="url" value="${jdbc.url}" />  
            <property name="username" value="${jdbc.username}" />  
            <property name="password" value="${jdbc.password}" />  
            <!-- 配置初始化大小、最小、最大 -->
    		<property name="initialSize" value="${druid.initialSize}" />
    		<property name="minIdle" value="${druid.minIdle}" />
    		<property name="maxActive" value="${druid.maxActive}" />
    		<!-- 配置获取连接等待超时的时间 -->
    		<property name="maxWait" value="${druid.maxWait}" />
    		<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
    		<property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}" />
    		<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
    		<property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}" />
    		<property name="validationQuery" value="${druid.validationQuery}" />
    		<property name="testWhileIdle" value="${druid.testWhileIdle}" />
    		<property name="testOnBorrow" value="${druid.testOnBorrow}" />
    		<property name="testOnReturn" value="${druid.testOnReturn}" />
    		<!-- 打开PSCache,并且指定每个连接上PSCache的大小 如果用Oracle,则把poolPreparedStatements配置为true,mysql可以配置为false。 -->
    		<property name="poolPreparedStatements" value="${druid.poolPreparedStatements}" />
    		<property name="maxPoolPreparedStatementPerConnectionSize"
    			value="${druid.maxPoolPreparedStatementPerConnectionSize}" />
    		<!-- 配置监控统计拦截的filters -->
    		<property name="filters" value="${druid.filters}" />  
        </bean>  

    3.配置web.xml

     <!--druid 监控 -->
    	<filter>
    		<filter-name>DruidWebStatFilter</filter-name>
    		<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
    		<async-supported>true</async-supported>
    		<init-param>
    			<param-name>exclusions</param-name>
    			<param-value>/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
    		</init-param>
    		<init-param>
    			<param-name>sessionStatMaxCount</param-name>
    			<param-value>1000</param-value>
    		</init-param>
    	</filter>
    	<filter-mapping>
    		<filter-name>DruidWebStatFilter</filter-name>
    		<url-pattern>/*</url-pattern>
    	</filter-mapping>
    
    	<!-- druid监控 -->
    	<servlet>
    		<servlet-name>DruidStatView</servlet-name>
    		<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
    		<async-supported>true</async-supported>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>DruidStatView</servlet-name>
    		<url-pattern>/druid/*</url-pattern>
    	</servlet-mapping>

    4.编写controller

    package com.demo.controller;
    
    import javax.servlet.http.HttpServletRequest;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    @Controller
    @RequestMapping("/druid")
    public class DruidController {
    	@RequestMapping("/index")
    	public String index(Model model, HttpServletRequest request) {
    		return "durid/index";
    	}
    
    }
    到这里就完成了,http://localhost:8080/.../druid/index  就ok了。  

    展开全文
  • druid.io可视化调研

    2017-12-25 12:01:31
    https://fangyeqing.github.io/2016/11/04/druid.io%E5%8F%AF%E8%A7%86%E5%8C%96%E8%B0%83%E7%A0%94/
  • Druid能够提供强大的监控和扩展功能,其可视化界面也是一目了然。先上一个可视化界面的图片: 二、什么是数据库连接池及作用:  定义:数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一...
  • 文章目录一、前言二、什么是 Apache Superset?...由于E-MapReduce Druid也支持SQL,所以可以通过Superset以两种方式访问E-MapReduce Druid,即Apache Druid原生查询语言或者SQL。 二、什么是 Apache Superset? Superset
  • Druid的优点很明显,它的可视化界面可以监控Sql语句和URI执行情况在开发中真的很需要。 先说优点吧: 1) 替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。 2) 数据库密码加密。直接把...
  • <artifactId>druid-spring-boot-starter <version>1.1.21 <groupId>p6spy <artifactId>p6spy <version>3.8.0 <groupId>org.aspectj <artifactId>aspectjweaver <version>1.9.5 <scope>compile ...
  • Docker实战-安装大数据分析与可视化平台superset(druid) 极客慧 2018-08-09 15:53:37 0、superset简介: Superset 是 Airbnb 开源的数据分析与可视化平台,同时也是由 Python 语言构建的轻量级 BI 系统。...
  • SpringBoot整合Druid实现多数据源和可视化监控 先献上github代码地址:https://github.com/yudiandemingzi/springboot-manydatasource 代码拉下来换下自己的mysql数据库地址,就可以直接运行。Druid的优点很明显,它的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,225
精华内容 1,690
关键字:

druid可视化