HikariCP

数据库连接池技术

数据库连接池负责分配、管理和释放数据库的连接。

  1. 数据库连接复用。重复使用现有的数据库连接,可以避免连接频繁建立、关闭的开销。

  2. 统一的连接管理。释放空闲时间超过最大空闲时间的数据库连接,避免因为没有释放数据库连接而引起的数据库连接泄漏。

HikariCP

字节码精简:优化代码,直到编译后的字节码最少,这样,CPU缓存可以加载更多的程序代码;

优化代理和拦截器:减少代码,例如HikariCP的Statement proxy只有100行代码,只有BoneCP的十分之一;

自定义数组类型(FastStatementList)代替ArrayList:避免每次get()调用都要进行range check,避免调用remove()时的从头到尾的扫描;

自定义集合类型(ConcurrentBag):提高并发读写的效率;

其他针对BoneCP缺陷的优化,比如对于耗时超过一个CPU时间片的方法调用的研究(但没说具体怎么优化)。

数据库连接中断的情况测试:

HikariCP:等待5秒钟后,如果连接还是没有恢复,则抛出一个SQLExceptions 异常;后续的getConnection()也是一样处理;

C3P0:完全没有反应,没有提示,也不会在“CheckoutTimeout”配置的时长超时后有任何通知给调用者;然后等待2分钟后终于醒来了,返回一个error;

Tomcat:返回一个connection,然后……调用者如果利用这个无效的connection执行SQL语句……结果可想而知;大约55秒之后终于醒来了,这时候的getConnection()终于可以返回一个error,但没有等待参数配置的5秒钟,而是立即返回error;

BoneCP:跟Tomcat的处理方法一样;也是大约55秒之后才醒来,有了正常的反应,并且终于会等待5秒钟之后返回error了;

HttpServletRequest的ServletRequest中和都是接口

HttpServletRequest的继承自ServletRequest中 

HttpServletRequest比ServletRequest多了一些针对于Http协议的方法。例如:

getHeader(),  getMethod(),  getSession() 

1.获得客户机信息

    getRequestURL方法返回客户端发出请求的完整

    URL。getRequestURI方法返回请求行中的资源名部分

    。getQueryString方法返回请求行中的参数部分

    。getRemoteAddr方法返回发出请求的客户机的IP地址

    getRemoteHost方法返回发出请求的客户机的完整主机名

    getRemotePort方法返回客户机所用的网络端口号

    getLocalAddr方法返回WEB服务器的IP地址getLocalName方法返回WEB服务器的主机

    名

    getMethod得到客户机请求方式

 2.获得客户机请求头

    getHeader(string name)方法

    getHeaders(String name)方法

    getHeaderNames方法 

 3.获得客户机请求参数(客户端提交的数据)

    getParameter(name)方法

    getParameterValues(String name)方法

    getParameterNames方法

    getParameterMap方法

点赞
收藏

评论区

加载中...

相关推荐

java设计思想

 https://blog.csdn.net/qq\_16038125/article/details/80180941池:同一类对象集合连接池的作用 1.资源重用 由于数据库连接得到重用,避免了频繁创建、释放连接引起的大量性能开销。在减少系统消耗的基础上,另一方面也增进了系统运行环境的平稳性(减少内存碎片以及数据库临时进程/线程的数量

JdbcTemplate 和 mybatis 的对比

好处:  1.jdbcTemplate是spring对jdbc操作数据库进行的封装,使得开发者可以直接在java文件中编写sql,无需配置xml文件。  2.简单效率快缺点:  1. 使用时创建连接,不使用时立即释放。频繁的连接开启和关闭造成资源的浪费,影响数据库的性能。     解决办法:使用数据库连接池,

Tomcat8.5&Mysql8.0配置数据库连接池(DBCP)

DBCP(DataBaseconnectionpool),数据库连接池。是apache上的一个java连接池项目,也是tomcat使用的连接池组件。由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。百度百科(htt

Spring Boot + Spring Cloud 实现权限管理系统 后端篇(七):集成 Druid 数据源

数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。通过数据库连接池能明显提高对数据库操作的性能。在Java应用程序开发中,常用的连接池有DBCP、C3P0、Proxool等。SpringBoot默认提供

Hikaricp简单使用

Hikaricp替换现有的数据库连接池也是很方便的没有时间去测试 现贴出简单的配置 如果使用spring,只需要简单的替换<beanid"hikariDataSource"class"com.zaxxer.hikari.HikariDataSource"destroymethod"s

MYSQL进阶学习笔记十四:MySQL 应用程序优化!(视频序号:进阶_32)

知识点十五:MySQL 的应用程序优化(32)一、访问数据库采用连接池把连接当做对象或设备,统一放在‘连接池’里。凡是需要访问数据库的地方都从连接池里取连接二、采用缓存减少对于MySQL的访问: