本文主要是介绍dbcp连接池等,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
连接池相关:
使用连接池创建的连接,使用conn.colse()方法,并不会直接关闭连接,而是被连接池接管:如果超过最大空闲数maxIdle,则直接关闭,否则不会关闭,维持在maxIdle之下,等待下一次请求连接,省去创建连接的开销,直接使用,从而实现效率的提升。
网上粘的相关参数设置:
- name="jdbc/TestDB" JNDI数据源的name,查找时用:java:comp/env/jdbc/TestDB
- type="javax.sql.DataSource"
- factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
- driverClassName="com.mysql.jdbc.Driver" JDBC驱动类
- url="jdbc:mysql://localhost:3306/test?
- characterEncoding=UTF-8&autoReconnectForPools=true&rewriteBatchedStatements=true&useCursorFetch=true&defaultFetchSize=20" 数据库URL地址
- username="xxx" 访问数据库用户名
- password="xxx" 访问数据库的密码
- maxWait="3000" 从池中取连接的最大等待时间,单位ms.
- initialSize="10" 初始化连接
- maxIdle="60" 最大空闲连接
- minIdle="10" 最小空闲连接
- maxActive="80" 最大活动连接
- validationQuery = "SELECT 1" 验证使用的SQL语句
- testWhileIdle = "true" 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除.
- testOnBorrow = "false" 借出连接时不要测试,否则很影响性能
- timeBetweenEvictionRunsMillis = "30000" 每30秒运行一次空闲连接回收器
- minEvictableIdleTimeMillis = "1800000" 池中的连接空闲30分钟后被回收
- numTestsPerEvictionRun="10" 在每次空闲连接回收器线程(如果有)运行时检查的连接数量
- removeAbandoned="true" 连接泄漏回收参数,当可用连接数少于3个时才执行
- removeAbandonedTimeout="180" 连接泄漏回收参数,180秒,泄露的连接可以被删除的超时值
netty相关:
netty之所以效率高,是因为使用了少量的线程,用轮询的方式,实现了非阻塞的工作。其中使用了回调,信号量,事件等方式达到异步非阻塞的效果。
使用多线程时一定要考虑线程切换带来的CPU利用率激增,一般不超过CPU核数,否则光切换线程,都要把cpu累瘫了。
这篇关于dbcp连接池等的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!