超酷小 发表于 2015-8-9 09:10:18

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]
查看完整版本: Jetty和Tomcat 配置上的一些异同