连接池

Spring框架 —— 连接池

让人想犯罪 __ 提交于 2019-11-29 23:47:49
连接池 连接池 遇到的问题-引出连接池 连接池思想 连接池的概述 使用连接池和不使用连接池的区别在哪里 Druid连接池的使用 druid.propperties 使用Druid抽取的工具类 连接池 遇到的问题-引出连接池 连接池思想 连接池的概述 在Java中,连接池使用javax.sql.DataSource接口来表示连接池. 注意:DataSource仅仅只是一个接口,由各大服务器厂商来实现(Tomcat.JBoss). 常用的DataSource的实现: DBCP: Spring推荐的, Apache 组织(基金会) C3P0: Hibernate推荐的 Druid : (德鲁伊)阿里巴巴开源的,性能最好,速度最快 DataSource(数据源)和连接池(Connection Pool)是同一个. 使用连接池和不使用连接池的区别在哪里 从代码上: 不使用连接池: Conenction对象由DriverManager获取. Connection conn = DriverManager.getConnection(url,username,password); 使用连接池: 如何创建DataSource对象,如何在DataSource中设置url,账号,密码. Connection conn = DataSource对象.getConnection(); 使用连接池的时候:

JAVA操作Redis

家住魔仙堡 提交于 2019-11-29 23:21:26
Jedis : 一款 java 操作 redis 数据库的工具。 1.字符串类型:String格式 //1. 获取连接 Jedis jedis = new Jedis();//如果使用空参构造,默认值 "localhost",6379端口 //2. 操作 //存储 jedis.set("username","zhangsan"); //获取 String username = jedis.get("username"); System.out.println(username); //可以使用setex()方法存储可以指定过期时间的 key value jedis.setex("activecode",20,"hehe");//将activecode:hehe键值对存入redis,并且20秒后自动删除该键值对 //3. 关闭连接 jedis.close(); 2.哈希类型 Hash:Map格式 //1. 获取连接 Jedis jedis = new Jedis();//如果使用空参构造,默认值 "localhost",6379端口 //2. 操作 // 存储hash jedis.hset("user","name","lisi"); jedis.hset("user","age","23"); jedis.hset("user","gender","female"); //

SpringBoot学习(五)—— springboot快速整合Druid

拜拜、爱过 提交于 2019-11-29 22:21:55
Druid连接池 简介 由阿里巴巴开源的druid连接池是目前综合实力最突出的数据库连接池,而且还提供了监控日志功能,能够分析SQL执行情况。 引入druid连接池 pom.xml中加入 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.21</version> </dependency> application.properties中加入 # druid spring.datasource.type=com.alibaba.druid.pool.DruidDataSource # 连接池初始化大小,最小,最大 spring.datasource.initialSize=10 spring.datasource.minIdle=10 spring.datasource.maxActive=30 # 连接等待超时时间 spring.datasource.maxWait=60000 # 多久检测需要关闭的空闲连接 spring.datasource.timeBetweenEvictionRunsMillis=60000 # 一个连接在池中最小生存的时间 spring.datasource.minEvictableIdleTimeMillis=300000 #

Hibernate实战——映射数据库对象

北城余情 提交于 2019-11-29 21:54:30
一 配置文件 <?xml version="1.0" encoding="GBK"?> <!-- 指定Hibernate配置文件的DTD信息 --> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <!-- hibernate-configuration是配置文件的根元素 --> <hibernate-configuration> <session-factory> <!-- 指定连接数据库所用的驱动 --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!-- 指定连接数据库的url,其中hibernate是本应用连接的数据库名 --> <property name="connection.url">jdbc:mysql://localhost/hibernate</property> <!-- 指定连接数据库的用户名 --> <property name="connection.username">root<

SpringBoot集成Druid连接池

允我心安 提交于 2019-11-29 20:58:34
关于数据库连接池 早期数据库访问(也没多少人上网) ​  ①装载数据库驱动程序;   ②通过jdbc建立数据库连接;   ③访问数据库,执行sql语句;   ④断开数据库连接。 对于并发量大的网站,会导致以下问题: 每一次web请求都要建立一次数据库连接,在同样的步骤下重复占用系统资源 不能控制被创建的连接对象数,系统资源会被毫无顾及的分配出去 如连接过多,也可能导致内存泄漏,服务器崩溃。 数据库连接池 连接池的作用是为了提高性能,将已经创建好的连接保存在池中,当有请求来时,直接使用已经创建好的连接对Server端进行访问。 这样省略(复用)了创建连接和销毁连接的过程(TCP连接建立时的三次握手和销毁时的四次握手),从而在性能上得到了提高。 嚣张的Druid(GitHub的Wiki上自称是Java语言最好的数据库连接池) 集成Druid 在上次Thymeleaf基础上进行集成 https://www.cnblogs.com/noneplus/p/11528129.html 引入pom <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1

SpringBoot笔记(个人总结加转载)

拟墨画扇 提交于 2019-11-29 19:22:23
一.对springBoot的个人理解 创建springBoot工程会自动生成他的启动引导类,一般起名为:MySpringBootApplication。 @SpringBootApplication //标记此注解表示此类是springBoot项目的启动引导类 public class MySpringBootApplication { //main方法是java程序的入口 public static void main(String[] args) { //run方法是运行引导类,参数是引导类的字节码对象 SpringApplication.run(MySpringBootApplication.class); } } springBoot的配置文件命名格式一般为:application.properties,因为boot的parent起步依赖中默认加载的配置文件格式如下: <includes> <include>**/application*.yml</include> <include>**/application*.yaml</include> <include>**/application*.properties</include> </includes> application.properties的一些常用配置 #pom文件进入spring-boot-starter

连接池你用对了吗?一次Unexpected end of stream异常的排查

一个人想着一个人 提交于 2019-11-29 18:20:28
能收获什么? 更加了解TCP协议 Redis与客户端关闭连接的机制 基于Apache Common连接池的参数调优 Linux网络抓包 情况简介 近期迁移了部分应用到K8s中,业务开发人员反馈说,会发现频繁出现 : redis.clients.jedis.exceptions.JedisConnectionException: Unexpected end of stream. 堆栈如下图: 发生这个问题的应用的环境如下: Java8 Jedis 2.9.0 排查 由于开发人员说近期才出现这个情况,我们首先怀疑是不是K8s环境的问题,进行了一轮K8s的网络环境问题排查。 我们首先利用tcpdump在node节点和容器内进行抓包。 tcpdump -i <interfaceName> -C 100 -s0 -n -w node.pcap tcp 不出意外我们确实发现了大量由Redis服务器响应给客户端的RST(TCP Reset)包,连接重置。 至此我们还是怀疑是网络不稳定引起的。 我们搜索了TCP RST相关内容,可以看到RST一般由下列的几个情况引起: 到不存在的端口的连接请求 异常终止一个连接 检测半打开连接 极客的Redis,不按规矩出牌的"RST"? 随后我们又对网络又进行了几轮的测试。 突然觉得有点不对劲,我们点开了RST包之前的包查看了包的内容。

Redis(二):Jedis操作Redis

醉酒当歌 提交于 2019-11-29 17:26:30
Jedis入门 在Maven中,添加如下依赖即可使用: <dependency> <groupId>commons-pool</groupId> <artifactId>commons-pool</artifactId> <version>1.6</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>compile</scope> </dependency> 1.简单配置-连接操作 /**简单连接Redis方式 * 1)创建连接 * 2)使用连接进行操作 * 3)关闭连接 */ @Test public void connectionTest() { //1)创建连接 Jedis connection = new Jedis("192.168.36.130", 6379); connection.auth("123456"); //2)使用连接进行操作 connection.set("name", "武大郎"); connection.set("age","26"); System.out.println(" 姓名:"+connection.get("name")+" 年龄:"

Jmeter数据库性能测试

我与影子孤独终老i 提交于 2019-11-29 16:42:47
1.网络请求时间 2.数据库查询的时间 数据库性能指标 TPS:每秒事务数(一秒钟服务器处理的事务数,事务指,请求出去到响应回来的整个过程的时间) QPS:每秒查询量(就是数据库每秒执行的SQL数量,包含insert/select/update/delete) 连接数(连接数是否释放) 查询缓存(不进行select,直接从缓存拿数据,缓存机制可以设置) 事务数的计算:Com_commit 提交次数(成功的事务) Com_rollback回滚次数(失败的事务)相加 QPS的计算 Questions / Uptime 即可得到的该指标的值 QPS查询:mysql>show global status like 'Questions'; mysql>show global status like 'Uptime' 数据库容易出现的问题: 1.连接池容易爆掉 2.慢查询 Jmeter需要一个插件才能连接数据库,一个mysql-connector-java-5.1.7-bin.jar包,放在apache-jmeter-4.0>lib>ext下即可 连接数据库第一步: 1.“添加”-》“配置元件”-》“JDBC Connection Configuration” QPS ( Queries Per Second ,每秒查询数) TPS ( Transactions Per Second

java视频教程之数据库连接池配置的两种方法

独自空忆成欢 提交于 2019-11-29 16:22:15
对于对性能要求较高的企业级应用来说用JDBC连接数据库的方式一般满足不了要求,这时就要用到数据库连接池了。对于连接池应该并不陌生吧,你可以学习 java视频教程 ‍ 了解。 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。 配置数据库连接池的两种方法 Tomcat服务器配置步骤: 1、把下面这段代码粘贴D:\apache-tomcat-6.0.14\conf context.xml到文件中的<Context></Context>标签对之间。(具体路径以实际为准) <Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource" maxActive="20" maxIdel="10" maxWait="1000" username="hr" password="hr" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin: @localhost :1521:oracle"> </Resource> 2、把数据库驱动JAR包复制到D