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.set CharacterEncoding 设定编码。


Tomcat  get 编码默认是 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迁移测试,我们拭目以待!

posted @ 2011-04-12 17:09  lovingprince  阅读(629)  评论(0编辑  收藏  举报