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方法
相关文章
相关标签/搜索