• Tomcat 7.x/8.x 优化


    一、优化Connector
    http://www.aikaiyuan.com/8466.html

    tomcat的运行模式有3种

    1)bio

    默认的模式,性能非常低下,没有经过任何优化处理和支持.

    2)nio

    利用java的异步io护理技术,noblocking IO技术.

    想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为

    protocol="org.apache.coyote.http11.Http11NioProtocol"
    启动后,就可以生效。
    ( http://www.365mini.com/page/tomcat-connector-mode.htm )
    3)apr

    安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能.

    二、Apache Tomcat 8 WebSocket How-To 中文翻译版
    http://blog.csdn.net/hills/article/details/39368951

    Java WebSocket 1.0 规范要求在一个不同的线程上执行到发起写入的线程的异步写入回调。
    由于容器线程池不是通过Servlet API被暴露,因此WebSocket实现必须提供自己的线程池。该线程池可以通过下列servlet context初始化参数被控制:

    org.apache.tomcat.websocket.executorCoreSize: executor线程池的核心大小。如果不设置,则默认为0。
    org.apache.tomcat.websocket.executorMaxSize:executor线程池所允许的最大值。如果不设置,则默认为200。
    org.apache.tomcat.websocket.executorKeepAliveTimeSeconds:executor线程池中空闲进程所保留的最大时间。如果未指定,则默认为60秒。

    设置方法:
    web.xml中

    <!--websocket executor 线程池的核心容量大小 -->
    <context-param>
    <param-name>org.apache.tomcat.websocket.executorCoreSize</param-name>
    <param-value>200</param-value>
    </context-param>
    <!--websocket executor 线程池的最大容量大小 -->
    <context-param>
    <param-name>org.apache.tomcat.websocket.executorMaxSize</param-name>
    <param-value>1000</param-value>
    </context-param>

    三、设置最大线程数
    apache-tomcat-7.0.73confserver.xml

    <Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />


    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
    maxThreads="1000" minSpareThreads="4"/>
    
    <Connector executor="tomcatThreadPool"
    port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />


    参考 :
    http://stackoverflow.com/questions/24889113/websocket-allows-only-200-connections
    http://hongjiang.info/tomcat-connector-tuning-2/

    四、自带的CharacterEncodingFilter 设置编码 解决乱码问题
    见apache-tomcat-7.0.73confweb.xml

    <!-- A filter that sets character encoding that is used to decode -->
    <!-- parameters in a POST request -->
    <filter>
    <filter-name>setCharacterEncodingFilter</filter-name>
    <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
    </init-param>
    <async-supported>true</async-supported>
    </filter>

    最后:吐个槽 :)

  • 相关阅读:
    权限设计=功能权限+数据权限
    C# 自定义配置文件
    asp.net core 系列 2 启动类 Startup.CS
    asp.net core 系列 1 概述
    IOC : Unity 配置和使用
    Unity Ioc 依赖倒置及Untity AOP被动拦截/自动拦截
    webuploader-异步切片上传(暂不支持断点续传)及 下载方法!C#/.NET
    C# 构造基础返回值类型-BaseResponse
    神奇的选择器 :focus-within
    妙用 scale 与 transfrom-origin,精准控制动画方向
  • 原文地址:https://www.cnblogs.com/lyhero11/p/6124271.html
Copyright © 2020-2023  润新知