每个web客户端请求对于服务器端来说就一个单独的线程,客户端的请求数量增多将会导致线程数就上去了,CPU就忙着跟线程切换。
而NIO则是使用单线程(单个CPU)或者只使用少量的多线程(多CPU)来接受Socket,而由线程池来处理堵塞在pipe或者队列里的请求.这样的话,只要OS可以接受TCP的连接,web服务器就可以处理该请求。大大提高了web服务器的可伸缩性。
大家都听说了在Apache Tomcat6 中支持了Java语言的特性 NIO( New I/O),不管你对NIO的技术是否熟悉,但你肯定能想象的到NIO是一个好东西。的确,使用NIO在服务器端会有更好的性能,加强服务器端对并发处理的 性能。 请注意:很抱歉,在tomcat6在默认的配置选项中是没有把NIO功能打开。所以很多正在使用Tomcat6的朋友们本以为能快活的使用上NIO。
不信,你可以试试,从Apache Tomcat 站点下载 的Tomct6 压缩包中 conf/server.xml的 配置文件第69 行,内容如下:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
进行测试,可以在控制台的启动信息里看见,默认状态下 没有被打开nio配置,启动时的信息,如下:
2010-2-1 12:59:40 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2010-2-1 12:59:40 org.apache.catalina.startup.Catalina load
修改成支持NIO的类型,配置如下 :
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol "
connectionTimeout="20000"
redirectPort="8443" />
进行测试,被打开nio配置,启动时的信息,如下:
2010-2-1 13:01:01 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
信息: Using a shared selector for servlet write/read
2010-2-1 13:01:01 org.apache.coyote.http11.Http11NioProtocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
这样才能让你真正体验到Tomcat6下NIO给你的系统带来的快感。
分享到:
相关推荐
此版本在Tomcat7.0.69 的基础上...2、 启用nio 和 线程池配置 (server.xml) 3、修改了context.xml ,添加redis 支持(注意redis 连接密码) 4、在Root目录添加了test.jsp 用于查看多tomcat集群时sessionId是否一直
7. **性能优化**:包括调整线程池大小、增大堆内存、启用NIO连接器等。 8. **错误排查**:通过查看`logs`目录下的日志文件定位问题,或者使用`catalina.out`来获取运行时的输出信息。 总之,Tomcat6是一个功能强大...
8. **性能优化**:Tomcat可以通过调整JVM参数、增加线程池大小、启用连接器的NIO模式等方式进行性能优化。 9. **更新与升级**:由于Tomcat6已停止维护,为了安全考虑,建议更新至更高版本如Tomcat8或Tomcat9,以...
此外,还可以通过连接器(Connector)配置启用NIO(非阻塞I/O)模式,以提升处理高并发请求的能力。 6. **集群与负载均衡** 虽然Tomcat 6x本身并不直接提供集群和负载均衡功能,但可以通过与其他工具(如Apache ...
还可以启用NIO模式以提高并发能力,或者使用 APR(Apache Portable Runtime)库提升I/O性能。 9. **扩展性**: Tomcat的模块化设计使得它可以方便地添加或替换组件,如添加其他类型的连接器、替换默认的Jasper JSP...
- 可以通过调整JVM参数、开启NIO连接器、使用连接池等方式提升Tomcat的性能。 10. **集成开发环境(IDE)**: - 多数IDE如Eclipse、IntelliJ IDEA都支持与Tomcat的集成,可以直接在IDE中启动和部署应用,便于开发...
在实际部署中,可以通过调整Tomcat的`server.xml`配置文件来启用NIO模式,例如设置`Connector`元素的`protocol`属性为`org.apache.coyote.http11.Http11NioProtocol`。此外,还可以配置连接池大小、选择器线程数、...
Tomcat 6提供了一些性能优化选项,如调整线程池大小、启用连接器的NIO模式、缓存静态资源、压缩输出等。此外,通过使用连接器(如 APR)和JNI,可以利用操作系统级别的特性提高性能。 **8. 监控与日志** Tomcat...
- **安全性考虑**: 为了生产环境的安全,建议启用用户身份验证并配置访问控制,可以编辑`conf/tomcat-users.xml`和`conf/web.xml`来实现。 综上所述,这个压缩包提供了多个版本的Tomcat,以适应不同项目的需求。...
### Tomcat 启用 HTTPS 的详细步骤与原理 #### 一、引言 在现代互联网应用中,数据安全显得尤为重要。HTTPS(超文本传输安全协议)作为一种加密传输协议,能够为用户提供更安全的数据传输保障。Tomcat作为一款流行...
在Tomcat6中,虽然默认并未开启NIO支持,但可以通过修改`conf/server.xml`配置文件启用它。将Connector的protocol属性从`HTTP/1.1`改为`org.apache.coyote.http11.Http11NioProtocol`,这样在启动时,你将看到NIO...
【标题】:Tomcat6与Tomcat7配置安装详解 【描述】:本文将详述Apache Tomcat 6和7的安装与配置过程,旨在帮助初学者和有经验的开发者理解这两个版本的Tomcat服务器如何在不同的操作系统上进行部署和管理。 **一、...
7. **性能优化**:Tomcat可以通过调整线程池大小、增大内存分配、启用NIO连接器等方式进行性能优化。同时,合理配置JVM参数也是提升性能的关键。 8. **安全性**:Tomcat提供了一套安全管理机制,包括用户角色、访问...
从Tomcat 7开始,可以通过修改`server.xml`中的`Connector`配置来启用NIO模式: ```xml connectionTimeout="20000" redirectPort="8443"/> ``` - **APR (Apache Portable Runtime)**:通过C语言编写的高性能...
8. **性能优化**:Tomcat的性能可以通过调整JVM参数、增大线程池大小、启用连接器的NIO模式等方式进行优化。这些通常需要修改`bin/catalina.sh`或`conf/server.xml`。 9. **监控与管理**:可以使用JMX(Java ...
- 多线程模型:Tomcat使用基于NIO的多线程模型,提高了并发性能和响应速度。 - 管理工具:提供了Web管理界面(Manager App)和主机管理界面(Host Manager),方便用户管理和监控应用。 - 配置简化:通过使用...
9. **性能优化**:包括调整线程池大小、开启NIO模式、启用连接器压缩、调整内存分配等,都是提高Tomcat性能的有效手段。 10. **故障排查**:当遇到问题时,除了查看日志,还可以使用Tomcat内置的JMX(Java ...
Apache2.2与Tomcat6集群配置教程 在IT行业中,服务器集群是一种常见的技术,用于提高系统的可用性和可扩展性。本教程将详细介绍如何在Apache2.2与Tomcat6环境下搭建集群,以实现负载均衡和高可用性。Apache作为前端...
7. **性能优化**: 优化Tomcat涉及多个方面,包括调整JVM参数(如堆大小、垃圾回收策略等)、启用NIO连接器、限制并发连接数、缓存静态资源、以及定期清理工作目录等。对于大型或高流量网站,可能还需要考虑负载均衡...
9. **性能优化**:Tomcat6提供了一些性能调整选项,如调整线程池大小、开启或关闭日志记录、启用或禁用JMX(Java Management Extensions)等。 10. **热部署**:在开发阶段,Tomcat允许开发者在不重启服务器的情况...