zoukankan      html  css  js  c++  java
  • 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方法
    博客链接:https://www.cnblogs.com/gqymy/
  • 相关阅读:
    Java实现二叉排序树
    servlet/filter/listener/interceptor区别与联系
    Java中创建对象的5种方式
    字符串练习
    成员变量、类变量、局部变量的区别
    强制清除gradle 缓存
    XML
    jQuery
    JavaScript
    CSS
  • 原文地址:https://www.cnblogs.com/gqymy/p/9216309.html
Copyright © 2011-2022 走看看