Druid

SpringBoot 注解方式 整合Redis

北城余情 提交于 2020-02-28 04:55:49
1.首先导入使用Maven导入jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency> 2.在application.properties配置信息 # Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=localhost # Redis服务器连接端口 spring.redis.port=6379 # Redis服务器连接密码(默认为空) spring.redis.password=123456 # 连接池最大连接数(使用负值表示没有限制) spring.redis.pool.max-active=200 # 连接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.pool.max-wait=-1 # 连接池中的最大空闲连接 spring

druid

烈酒焚心 提交于 2020-02-27 18:41:21
主要用到的是ReentrantLock锁,还有 notEmpty empty两个条件, 生产连接与消费连接 的 线程 在两个条件上等待与唤醒。 empty还是生产者,notEmpty是消费者。 主要 DruidAbstractDataSource与DruidDataSource两个类了 。 创建连接 DruidDataSource里的CreateConnectionThread,连接太多了的时候,在empty条件上等待,就是等空了再运行,现在别急着创建连接,等着吧! connection = createPhysicalConnection(); 创建一个物理连接。然后put一下,这个put很可能是放池子中, 使用连接 DruidDataSource 的getConnectionInternal的takeLast()方法从池子里面获取连接。getConnectionInternal方法还会直接创建一个物理连接createPhysicalConnection() 谁在用takeLast(),查找发现是getPooledConnection()--getConnection(maxWait)---getConnectionDirect(maxWaitMillis)--getConnectionInternal(maxWaitMillis) getConnection()

什么是Druid

僤鯓⒐⒋嵵緔 提交于 2020-02-27 10:44:22
一、Druid是什么 Druid 单词来源于西方古罗马的神话人物,中文常常翻译成德鲁伊。 玩过魔兽世界,暗黑破坏神,Dota,炉石传说,Dota自走棋的朋友,对这个词一定不陌生。 本文中所介绍的Druid是一个分布式的支持实时分析的数据存储系统。通俗一点:高性能实时分析数据库。它由美国广告技术公司MetaMarkets于2011年创建,并且于2012年开源。MetaMarkets是一家专门为在线媒体公司提供数据服务的公司,主营是DSP广告运营推送平台,由于对实时性要求非常高,公司不得不放弃原始的大数据方案,Druid也就应运而生。 Druid的官方网站地址是: http://druid.io/ 目前Druid已基于Apache License 2.0协议开源,正在由Apache孵化,代码托管于Github。 最新官网地址为: https://druid.apache.org/ 阿里曾开源过一个项目叫做Druid是一个数据库连接池。与本文所述Driud只是名字相同,并没有什么联系,Github上两者都有相应的版本库。 本文说的Druid是Apache Druid Github地址: https://github.com/apache/druid/ 已经有9k+star 最新release版本已经到0.17 正处于上升期。 二、Druid特性与基本概念

Java EE day09学习总结

醉酒当歌 提交于 2020-02-27 08:45:47
今天主要学习C3P0/DBCP/Druid连接池 思维导图: 一.DBCP连接池 1.数据库的连接池在建立数据库连接的时候,能解决很多问题,提高性能的优化。同时市面也有很多第三方公司也为java提供了对应的连接池。所有三方公司的连接池也和JDBC一样,需要遵守一个规则(接口):javax.sql.DataSource; 2.各个厂商如果要兼容市面的业务代码一般都会去实现这个接口,以便于各个连接池之间相互切换以及兼容。 3.现在市面上常见的连接池:DBCP(Spring推荐)/C3P0(Hibernate)/Druid(阿里开源) 4.DBCP连接池:Apache推出的Database Connection Pool 5.使用的步骤: (1)导入jar包(因为不是java自带的,所以需要导入三方包) commons-dbcp-1.4.jar -- 核心包 commons-pool-1.5.6.jar -- 辅助包 (2)创建连接池对象 方式1:Ba2sicDataSource ds = new BasicDataSource(); 方式2:DataSource ds = new BasicDataSource(); (3)设置基础的连接参数 //url地址 ds.setUrl("jdbc:mysql://115.28.67.10:3306/jdbc_demo

SpringCloud微服务:阿里开源组件Nacos,服务和配置管理

久未见 提交于 2020-02-26 11:28:01
源码地址: GitHub·点这里 || GitEE·点这里 一、阿里微服务简介 1、基础描述 Alibaba-Cloud致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过SpringCloud编程模型轻松使用这些组件来开发分布式应用服务。只需要添加一些注解和少量配置,就可以将SpringCloud应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。 2、核心功能 服务限流降级 默认支持 WebServlet、WebFlux, OpenFeign、RestTemplate、SpringCloudGateway,Zuul,Dubbo和RocketMQ限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。 服务注册与发现 适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 的支持。 分布式配置管理 支持分布式系统中的外部化配置,配置更改时自动刷新。 消息驱动能力 基于 Spring Cloud Stream 为微服务应用构建消息驱动能力。 分布式事务 使用 @GlobalTransactional 注解, 高效并且对业务零侵入地解决分布式事务问题。 分布式任务调度 提供秒级、精准、高可靠、高可用的定时(基于Cron表达式)任务调度服务

Druid 0.17 入门(2)—— 安装与部署

我是研究僧i 提交于 2020-02-26 01:46:48
在Druid快速入门其实已经简单的介绍过最简化配置的单节点部署,本文我们将详细描述Druid的多种部署方式,对于测试开发环境可以选用轻量的单机部署方式,而生产环境我们最好选用集群部署的方式,确保系统的高可用性。 一、单机部署 Druid提供了一组可以参考的配置和单机部署的启动脚本。 nano-quickstart micro-quickstart small medium large xlarge micro-quickstart 尺寸适合笔记本电脑等小型机器,目的是用于快速评估使用情况。 nano-quickstart 适合更小的配置,面向具有1个CPU和4GB内存的计算机。它旨在在资源受限的环境(例如小型Docker容器)中进行有限的评估。 单服务器参考配置 Nano-Quickstart:1个CPU,4GB RAM 启动命令: bin/start-nano-quickstart 配置目录: conf/druid/single-server/nano-quickstart 微型快速入门:4个CPU,16GB RAM 启动命令: bin/start-micro-quickstart 配置目录: conf/druid/single-server/micro-quickstart 小型:8 CPU,64GB RAM(〜i3.2xlarge) 启动命令: bin/start-small

快速开发平台之使用代码生成器分享

妖精的绣舞 提交于 2020-02-26 01:22:22
快速开发平台 是开发人员将各种需要的功能以目前流行的多种web技术,包括springboot, JPA,Druid, Activiti,Lombok,swagger,poi,WebSocket,Jquery,BootStrap, maven,Jenkins 等等 )为基础封装在不同的层中,给大家调用,而大家在调用时不需要清楚这些方法里面是如果实现的,只需要关注输出的结果是否是自己想要的就可以了。 XJR快速开发平台的代码生成器已经把常用的开发场景做成开发模板,按照开发向导一步步走,在遇到有复杂业务逻辑的地方稍作修改就可以。当然XJR快速开发平台提供了源代码,您的开发水平比较高的话可以做深层次的扩展。 快速开发平台可以实现各种业务系统如OA、ERP、MIS、HIS、WMS、CRM、电商平台、app软件开发、工作流引擎等系统开发。一起来看看实例分享。 先来看看自定义开发模板 1、点开菜单快速开发→代码生成器→自定义开发模板 2、选择工作流数据表单,设置表单。 3、调整布局 点击图中的“下一步”进入表单开发界面,可以随意,如图 4、界面设计 调整好整体布局后就可以将左侧的控件直接拖入前面设计好的布局中,然后设置好。完全可视化,拖拽设置就可以实现,操作简单,这里就不详细说明了。 5、设置查询配置 6、设置列表配置 7、设置合计配置 8、输出配置 9、绑定菜单

SpringBoot 2.0整合数据源Druid

大城市里の小女人 提交于 2020-02-25 00:04:24
前言 闹腾了一天,什么访问Druid登录界面出现重定向过多,什么登录界面可以看到了就是登不进去的种种问题总算是解决了。 下面我们就来详细介绍如何在原生的JDBC上整合Druid。 一.新建一个整合了JDBC数据源的项目 [1] 引入starter [2] 配置application.yml (关于数据源的相关配置可参考DataSourceProperties.class) spring: datasource: username: root password: 123456 url: jdbc:mysql://192.168.31.122:3306/jdbc driver-class-name: com.mysql.jdbc.Driver [3] 编写一个测试类(查看原生jdbc是否连通) package com.gs.springboot; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import javax.sql.DataSource; import java.sql.Connection; import

利用 druid 解析器解析SQL

≯℡__Kan透↙ 提交于 2020-02-24 20:51:03
最近参与一个开源项目,一个功能的实现,用到了 druid 解析器来解析SQL,记录下如果使用 druid 来解析SQL,实现对SQL的拦截改写。 1. 对 insert 语句进行解析: private static String convertInsertSQL(String sql){ try{ MySqlStatementParser parser = new MySqlStatementParser(sql); SQLStatement statement = parser.parseStatement(); MySqlInsertStatement insert = (MySqlInsertStatement)statement; String tableName = StringUtil.removeBackquote(insert.getTableName().getSimpleName()); if(!isGlobalTable(tableName)) return sql; if(!isInnerColExist(tableName)) return sql; List<SQLExpr> columns = insert.getColumns(); if(columns == null || columns.size() <= 0) return sql; if

SpringBoot使用druid数据源整合mybatis(注解版)并实现增删改查(源码)(一个简单的例子)(没有使用逆向工程)

梦想与她 提交于 2020-02-23 23:00:09
第一步: 导入依赖: < dependency > < groupId > org . springframework . boot < / groupId > < artifactId > spring - boot - starter - jdbc < / artifactId > < / dependency > < dependency > < groupId > org . springframework . boot < / groupId > < artifactId > spring - boot - starter - web < / artifactId > < / dependency > < dependency > < groupId > org . mybatis . spring . boot < / groupId > < artifactId > mybatis - spring - boot - starter < / artifactId > < version > 2.1 .1 < / version > < / dependency > < dependency > < groupId > mysql < / groupId > < artifactId > mysql - connector - java < / artifactId >