tomcat中关于websocket的性能优化配置
tomcat的运⾏模式有3种
1)bio
默认的模式,性能⾮常低下,没有经过任何优化处理和⽀持.
3)apr
安装起来最困难,但是从操作系统级别来解决异步的IO问题,⼤幅度的提⾼性能.
Java WebSocket 1.0 规范要求在⼀个不同的线程上执⾏到发起写⼊的线程的异步写⼊回调。
由于容器线程池不是通过Servlet API被暴露,因此WebSocket实现必须提供⾃⼰的线程池。该线程池可以通过下列servlet context初始化参数被控制:
utorCoreSize: executor线程池的核⼼⼤⼩。如果不设置,则默认为0。
utorMaxSize:executor线程池所允许的最⼤值。如果不设置,则默认
为200。
utorKeepAliveTimeSeconds:executor线程池中空闲进程所保留的最⼤时间。如果未指定,则默认为60秒。
设置⽅法:
<!--websocket executor 线程池的核⼼容量⼤⼩ -->
<context-param>
<param-name>utorCoreSize</param-name>
<param-value>200</param-value>
servlet和tomcat的关系</context-param>
<!--websocket executor 线程池的最⼤容量⼤⼩ -->
<context-param>
<param-name>utorMaxSize</param-name>
<param-value>1000</param-value>
</context-param>
三、设置最⼤线程数
apache-tomcat-7.0.73\l
<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" />
四、⾃带的CharacterEncodingFilter 设置编码 解决乱码问题
见apache-tomcat-7.0.73\l
<!-- 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>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论