dbcp连接池等

2024-03-02 10:32
文章标签 连接池 dbcp

本文主要是介绍dbcp连接池等,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

连接池相关:

使用连接池创建的连接,使用conn.colse()方法,并不会直接关闭连接,而是被连接池接管:如果超过最大空闲数maxIdle,则直接关闭,否则不会关闭,维持在maxIdle之下,等待下一次请求连接,省去创建连接的开销,直接使用,从而实现效率的提升。

网上粘的相关参数设置:

  1. name="jdbc/TestDB"  JNDI数据源的name,查找时用:java:comp/env/jdbc/TestDB  
  2. type="javax.sql.DataSource"  
  3. factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"  
  4. driverClassName="com.mysql.jdbc.Driver" JDBC驱动类  
  5. url="jdbc:mysql://localhost:3306/test?  
  6. characterEncoding=UTF-8&autoReconnectForPools=true&rewriteBatchedStatements=true&useCursorFetch=true&defaultFetchSize=20" 数据库URL地址    
  7. username="xxx" 访问数据库用户名  
  8. password="xxx" 访问数据库的密码  
  9.    
  10. maxWait="3000" 从池中取连接的最大等待时间,单位ms.  
  11. initialSize="10"  初始化连接  
  12. maxIdle="60"   最大空闲连接  
  13. minIdle="10"   最小空闲连接  
  14. maxActive="80" 最大活动连接  
  15.    
  16. validationQuery = "SELECT 1"  验证使用的SQL语句  
  17. testWhileIdle = "true"      指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除.  
  18. testOnBorrow = "false"   借出连接时不要测试,否则很影响性能  
  19. timeBetweenEvictionRunsMillis = "30000"  每30秒运行一次空闲连接回收器  
  20. minEvictableIdleTimeMillis = "1800000"  池中的连接空闲30分钟后被回收  
  21. numTestsPerEvictionRun="10" 在每次空闲连接回收器线程(如果有)运行时检查的连接数量  
  22.       
  23. removeAbandoned="true"  连接泄漏回收参数,当可用连接数少于3个时才执行  
  24. removeAbandonedTimeout="180"  连接泄漏回收参数,180秒,泄露的连接可以被删除的超时值 


netty相关:

netty之所以效率高,是因为使用了少量的线程,用轮询的方式,实现了非阻塞的工作。其中使用了回调,信号量,事件等方式达到异步非阻塞的效果。

使用多线程时一定要考虑线程切换带来的CPU利用率激增,一般不超过CPU核数,否则光切换线程,都要把cpu累瘫了。



这篇关于dbcp连接池等的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/765817

相关文章

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而

MySQL数据库连接池技术

关于数据库连接池的使用,首先我们要明白我们为什么要用它,对应普通的数据库连接操作,通常会涉及到以下一些操作是比较耗时的: 网络通讯,涉及到网络延时及协议通讯身份验证,涉及安全性检查连接合法性检查,主要是检查所连接的数据库是否存在并发控制机制构造并初始化输出缓冲区连接成功后的信息保存,日志存储服务器性能数据库配置优化系统分配内存资源等等~~~状况,导致数据库连接操作比较耗时,~~~而且每次都得花费

Redis 客户端Jedis使用---连接池

Jedis 是Redis 的Java客户端,通过一段时间的使用,jedis基本实现redis的所有功能,并且jedis在客户端实现redis数据分片功能,Redis本身是没有数据分布功能。 一、下载jedis 代码 jedis 代码地址:https://github.com/xetorthio/jedis 再次感受到开源的强大。呵呵,大家有时间可以看看源码。 二、项目中如何使用Jedi

Hibernate中自带的连接池!!!

<span style="font-size:18px; font-family: Arial, Helvetica, sans-serif;"><?xml version="1.0" encoding="UTF-8"?></span> <span style="font-size:18px;"><!DOCTYPE hibernate-configuration PUBLIC"-//Hibern

C3P0连接池参数配置

<!--acquireIncrement:链接用完了自动增量3个。 --><property name="acquireIncrement">3</property><!--acquireRetryAttempts:链接失败后重新试30次。--><property name="acquireRetryAttempts">30</property><!--acquireRetryDelay;两次连接

OkHttp3源码分析[复用连接池]

OkHttp系列文章如下 OkHttp3源码分析[综述]OkHttp3源码分析[复用连接池]OkHttp3源码分析[缓存策略]OkHttp3源码分析[DiskLruCache]OkHttp3源码分析[任务队列] 1. 概述 HTTP中的keepalive连接在网络性能优化中,对于延迟降低与速度提升的有非常重要的作用。 通常我们进行http连接时,首先进行tcp握手,然后传输数据,最后释

tomcat连接池和dbutils使用

1.    配置tomcat下的conf下的context.xml文件,在<Context> </Context>之间添加连接池配置:             <Context>  <Resource name="jdbc/lhy"     <--对应web.xml     <res-ref-name> -->             auth="Container"

17 连接池原理

可以设计一个mysql的连接池,提高效率 提前建立一个连接池,这里面创建线程池,和mysql建立连接,维护一个任务队列。有任务到来时,将任务放入任务队列,任务结构是要执行的sql语句和需要的回调函数,可以将结果返回。连接池组件有hicar之类的 在网页中的mysql,首先请求进行注册,网站提取参数形成命令,mysql的服务器有很多个,中间可以搭一个软件层来选择要访问的数据库在哪个服务器,同时

java.lang.ClassCastException: org.apache.commons.dbcp.BasicDataSource cannot be cast to

ApplicationContext cxt = new ClassPathXmlApplicationContext("beans.xml"); ProductService productService = (ProductService) cxt.getBean("dataSource"); productService.save(new ProductType()); 异常: java

MySQL 的基础 一 (连接池, SQL接口, 查询解析器, 查询优化器, 存储引擎接口, 执行器)

目录 1  MySQL数据库的连接池 2  网络连接必须让线程来处理 3  SQL接口:负责处理接收到的SQL语句 4  查询解析器:让MySQL能看懂SQL语句 5  查询优化器:选择最优的查询路径 6  调用存储引擎接口,真正执行SQL语句 7  执行器:根据执行计划调用存储引擎的接口 1  MySQL数据库的连接池 当多个系统访问同一个数据库时,每个系统会通过数据库连接