Jetty和Tomcat 配置上的一些异同
Jetty和Tomcat在有些关键地方的配置有一些异同,这里简单列举下:[*]字符编码
Jetty 7 get URI queryString编码默认使用UTF-8编码,可以通过request.setAttribute(“org.eclipse.jetty.server.Request.queryEncoding”,”GBK”)设定查询参数的编码,如果不设定则默认读取系统属性-Dorg.eclipse.jetty.util.URI.charset=GBK 的编码,如果系统属性也没有设定,则默认为UTF-8。
POST 参数默认使用Content-type中的Charset编码,如果Charset没有,则默认使用UTF-8编码,当然可以在使用之前使用request.setCharacterEncoding设定编码。
Tomcatget 编码默认是ISO-8859-1,可以通过Connector上URIEncoding=GBK设定编码,也可以强制useBodyEncodingForURI=true 让URI和body编码一致。
[*]Connector配置
Tomcat Connector 配置参数和jetty的参数对应关系
Tomcat
Jetty
原生socket
备注
acceptCount
AcceptQueueSize
Backlog,默认50
连接被accept前允许等待的连接数
connectionLinger
SoLingerTime
soLinger
connectionTimeout
MaxIdleTime
SoTimeout
对ServerSocket来说是accept最大阻塞时间,对Socket来说是read调用阻塞时间
enableLookups
ResolveNames
是否反查getRemoteHost()
是否反查客户机主机名
[*]Tomcat 特有增强性能的APR
Tomcat connector配置AJP/1.3、HTTP/1.1 可能会使用APR,如果类路径中org.apache.tomcat.jni.Library可以用,那么则会使用APR.其实Library是在默认加载tcnative-1.so和libtcnative-1.so动态本地连接库来增强其性能,经过测试,APR大概给Tomcat带来约15%的性能提升,的确很给力。
假想: Jetty如果用上这个本地库性能会有多大提升呢?最近我在进行Jetty支持APR的Connector迁移测试,我们拭目以待!
页:
[1]