Druid

spring-boot和JPA多数据源整合

痴心易碎 提交于 2019-12-05 05:22:12
今天弄一下spring-boot和jpa的多数据源整合 Jpa(Java Persistence API)Java持久化API,它是一套ORM规范 只是一套规范 Spring Boot中使用的Jpa实际上是Spring Data Jpa,Spring Data是Spring家族的一个子项目,用于简化SQL和NoSQL的访问,在Spring Data中,只要你的方法名称符合规范,它就知道你想干嘛,不需要自己再去写SQL。实际还是hibernate。 接下来我们简单来弄下,直接 在idea里创建spring-boot工程,勾选web里的web和sql里的JPA和mysql依赖 然后在依赖里,写一下mysql的版本,一般五点几就行了,再添加Druid依赖 依赖如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0<

sql injection violation, multi-statement not allow 最终解决方案

我与影子孤独终老i 提交于 2019-12-05 02:36:05
解题思路: 1. 代码报错,引起异常操作是批量更新,定义如下与Druid有关Bean: <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="driverClassName" value="${db.driverClassName}"/> <property name="url" value="${db.url}"/> <property name="username" value="${db.username}"/> <property name="password" value="${db.passwrod}"/> <property name="initialSize" value="3"/> <property name="minIdle" value="3"/> <property name="maxActive" value="20"/> <property name="maxWait" value="60000"/> <property name="filters" value="stat,wall"/> </bean> <bean id="stat-filter"

spring boot yml文件配置druid数据源开启sql监控

被刻印的时光 ゝ 提交于 2019-12-05 02:34:32
我使用的版本 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10<ersion> </dependency> spring: datasource: name: dataSource url: XXXXx username: XXX password: XXXXX type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver maxActive: 200 initialSize: 1 maxWait: 60000 minIdle: 1 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: select 'x' testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxOpenPreparedStatements: 20

Druid 驱动海量实时多维分析

旧时模样 提交于 2019-12-05 01:07:38
我今天分享的话题是Druid驱动海量数据实时多维分析。 1、需求背景 首先我来谈一下海量实时多维分析的需求背景,我们广告系统有DSP睿视系统和AD exchange等,前段时间品友的曹老师分享时提到DSP Ad exchange,如果对DSP不了解的同学,可以在百度百科上查一下“互联网广告DSP”,实时竞价是DSP的核心,广告主或者优化师需要动态调整出价优化使收益最大化。 广告主调整出价策略或者投放策略进行优化,想要尽快得到实时的反馈,比如修改了地域定投,实时分地域的竞得率和转化率,甚至是分钟粒度的。在我们的DSP系统中我们提供12种维度(不算多)的多维分析,用户可以任意组合下钻查询。 最初的时候我并不是采用Druid,而是采用Storm+Kafka+Redis实时数据处理,以及hive+mysql的离线处理的Lambda架构架构见下图。 实时数据经过Storm ETL,主要是将不同维度组合作为key,计算metrics以后为value存在redis中。离线数据定时将昨天的数据在Hive中 经过一系列ETL,按照维度组合计算metrics以后将结果存储在mysql中。 采用redis作为实时数据的存储有两个核心问题需要解决: redis不支持range scan,我们需要在app层拼好所有的key,然后调用mget获取,如果执行groupby查询的话例如select area,pv

数据库连接池性能测试(hikariCP,druid,tomcat-jdbc,dbcp,c3p0)

蓝咒 提交于 2019-12-05 00:42:21
本文主要是对这hikariCP,druid,tomcat-jdbc,dbcp,c3p0几种连接池的详细的功能和性能测试对比,通过这次测试对目前主流的一些连接池做一个全面的对比,从而给业务系统一个最佳的推荐。 测试结论 性能方面 hikariCP>druid>tomcat-jdbc>dbcp>c3p0 。hikariCP的高性能得益于最大限度的避免锁竞争。 druid功能最为全面,sql拦截等功能,统计数据较为全面,具有良好的扩展性。 综合考虑到目前venus已经支持druid且hikariCP并未发现有太多大规模的生产实践的案例,后续将推荐使用druid并把codegen生成的代码默认连接池为druid。 可开启prepareStatement缓存,对性能会有大概10%的提升。 功能对比 功能 dbcp druid c3p0 tomcat-jdbc HikariCP 是否支持PSCache 是 是 是 否 否 监控 jmx jmx/log/http jmx,log jmx jmx 扩展性 弱 好 弱 弱 弱 sql拦截及解析 无 支持 无 无 无 代码 简单 中等 复杂 简单 简单 更新时间 2018.1.13 2018.1.14 2017.5.4 2018.1.14 特点 依赖于common-pool 阿里开源,功能全面 历史久远,代码逻辑复杂,且不易维护 优化力度大,功能简单

JAVA--高级基础开发Druid

醉酒当歌 提交于 2019-12-04 23:43:48
Druid阿里巴巴属性文件 driverClass=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/ab_wzy?serverTimezone=UTC&character=utf8 user=root password=root #配置Druid连接池参数 initialSize=5 minIdle=3 maxActive=10 maxWait=60000 timeBetweenEvictionRunsMillis=2000 //阿里 Druid 连接池 import com.alibaba.druid.pool.DruidDataSource; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class JdbcUtils3 { //创建阿里巴巴连接池对象 private static DruidDataSource ds; private static

spring aop不起作用

心已入冬 提交于 2019-12-04 23:17:45
接手了一个老项目,用的是spring 1.2.9的,配置aop怎么也不起作用,在网上搜了半天,只能啃官方文档。 https://docs.spring.io/spring/docs/1.2.9/reference/aop.html 不知道为什么,必须加上 DefaultAdvisorAutoProxyCreator 才起作用 <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"/> <bean id="interceptor" class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor"/> <bean id="settersAndAbsquatulateAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"> <property name="advice"> <ref local="interceptor"/> </property> <property name="patterns"> <list> <value>com.my.service.*</value> </list> <

apache druid 实时加载kafka 中的数据(一)

六眼飞鱼酱① 提交于 2019-12-04 20:25:05
简介 apache druid 是分布式列存储的 OLAP 框架。还是一个时间序列数据库。本篇文章主要是druid 在kafka 加载数据的配置。由于druid 升级情况太快,本人的环境还是在0.13,主要改动方面还是UI,新的版本在UI方面更适合新手入门。 文章如有帮助,请关注微信公共号。 最终使用druid时,是0.9版本,当时在kafka加载数据推荐的方式是两种 Tranquility kafka index service Tranquility 是用于将流实时推送到Druid的工具包。是一个独立,需要单独下载。 ** 其特点** 无缝地处理分区,复制,服务发现和架构过渡,而无需停机。集成了http server,Samza,Spark ,Storm,Flink 等工具。 可以自由的控制向druid,主动发送数据。 ** 劣势** 本身具有时间窗,超过时间窗的数据直接丢弃。 版本落后,由于没有官方组织维护,目前版本只是兼容值0.9.2,后面druid升级后,Tranquility未及时升级,有些新的api 无法适配。 kafka index service 这是druid 自身携带的扩展插件,使用时,需要在common.runtime.properties 文件中的属性 druid.extensions.loadList 添加druid-kafka-indexing

springboot mybatis使注解和xml两种方式同时生效

余生颓废 提交于 2019-12-04 19:57:04
声明:该博客参考了: https://www.jianshu.com/p/53762ac6d31c 如果上面这个博客中的内容已经解决了你的问题,那就不用往下看了,如何按照上面的配置一直报这个异常: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 请参考如下博客解决: https://blog.csdn.net/softwarehe/article/details/8889206 。 如果仍然无法解决,可以尝试下面的方法,这也是我写这篇博客的目的。 一般在项目中都会使用springboot,如果需要使用mysql,一般都会使用阿里的druid数据库连接池,那使用这个连接池的时候,一般都会对druid做一些配置,有的人喜欢在yml中直接配置了,但是有些人可能在程序中搞一个配置类:类似于下面这种(没有全部贴出来,太长): @Configuration @MapperScan(basePackages = "com.gbgg.graph.goods.mapper", sqlSessionTemplateRef = "sqlSessionTemplate") public class DuridConfig { @Value("${spring.datasource.primary

Druid配置Filter(非spring下)

狂风中的少年 提交于 2019-12-04 19:42:59
🙂🙂🙂关注**微信公众号:【芋艿的后端小屋】**有福利: RocketMQ / MyCAT / Sharding-JDBC 所有 源码分析文章列表 RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址 您对于源码的疑问每条留言 都 将得到 认真 回复。 甚至不知道如何读源码也可以请教噢 。 新的 源码解析文章 实时 收到通知。 每周更新一篇左右 。 代码如下:# <!-- lang: java --> List<Filter> filters = new ArrayList<>(); if (ApplicationConfig.GAME_DB_CONSOLE) { Slf4jLogFilter slf4jLogFilter = new Slf4jLogFilter(); slf4jLogFilter.setStatementExecutableSqlLogEnable(true); filters.add(slf4jLogFilter); } gameDataSource.setProxyFilters(filters); 以上代码需要注意的是:必须filters数组的元素都添加后在去调用setProxyFilters。 原因如下: <!-- lang: java --> public void setProxyFilters(List