返回顶部
首页 > 资讯 > 精选 >Tomcat NIO的配置方法
  • 605
分享到

Tomcat NIO的配置方法

2023-06-17 11:06:23 605人浏览 独家记忆
摘要

本篇内容介绍了“Tomcat NIO的配置方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Tomcat 6.X实现了JCP的Servlet

本篇内容介绍了“Tomcat NIO的配置方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Tomcat 6.X实现了JCP的Servlet 2.5和jsP2.1的规范,并且包括其它很多有用的功能,使它成为开发和部署WEB应用和web服务的坚实平台。

Nio (No-blocking I/O)从jdk 1.4起,NIO api作为一个基于缓冲区,并能提供非阻塞I/O操作的API被引入。

作为开源web服务器的java实现,tomcat几乎就是web开发者开发、测试的***,有很多其他商业服务器的开发者也会优先选择tomcat作为开发时候使用,而在部署的时候,把应用发布在商业服务器上。也有许多商业应用部署在tomcat上,tomcat承载着其核心的应用。但是很多开发者很迷惑,为什么在自己的应用里使用tomcat作为平台的时候,而并发用户超过一定数量,服务器就变的非常繁忙,而且很快就出现了connection refuse的错误。但是很多商业应用部署在tomcat上运行却安然无恙。

其中有个很大的原因就是,配置良好的tomcat都会使用APR(Apache Portable Runtime),APR是Apache Http Server2.x的核心,它是高度可移植的本地库,它使用高性能的UXIN I/O操作,低性能的java io操作,但是APR对很多Java开发者而言可能稍稍有点难度,在很多OS平台上,你可能需要重新编译APR。但是从Tomcat6.0以后, Java开发者很容易就可以是用NIO的技术来提升tomcat的并发处理能力。

但是为什么NIO可以提升tomcat的并发处理能力呢,我们先来看一下java 传统io与 java NIO的差别。

Java 传统的IO操作都是阻塞式的(blocking I/O), 如果有Socket编程基础,你会接触过堵塞socket和非堵塞socket,堵塞socket就是在accept、read、write等IO操作的的时候,如果没有可用符合条件的资源,不马上返回,一直等待直到有资源为止。而非堵塞socket则是在执行select的时候,当没有资源的时候堵塞,当有符合资源的时候,返回一个信号,然后程序就可以执行accept、read、write等操作,一般来说,如果使用堵塞socket,通常我们通常开一个线程accept socket,当读完这次socket请求的时候,开一个单独的线程处理这个socket请求;如果使用非堵塞socket,通常是只有一个线程,一开始是select状,当有信号的时候可以通过 可以通过多路复用(Multiplexing)技术传递给一个指定的线程池来处理请求,然后原来的线程继续select状态。 最简单的多路复用技术可以通过java管道(Pipe)来实现。换句话说,如果客户端的并发请求很大的时候,我们可以使用少于客户端并发请求的线程数来处理这些请求,而这些来不及立即处理的请求会被阻塞在java管道或者队列里面,等待线程池的处理。请求 听起来很复杂,在这个架构当道的java 世界里,现在已经有很多优秀的NIO的架构方便开发者使用,比如Grizzly,Apache Mina等等,如果你对如何编写高性能的网络服务器有兴趣,你可以研读这些源代码。

简单说一下,在web服务器上阻塞IO(BIO)与NIO一个比较重要的不同是,我们使用BIO的时候往往会为每一个web请求引入多线程,每个web请求一个单独的线程,所以并发量一旦上去了,线程数就上去了,CPU就忙着线程切换,所以BIO不合适高吞吐量、高可伸缩的web服务器;而NIO则是使用单线程(单个CPU)或者只使用少量的多线程(多CPU)来接受Socket,而由线程池来处理堵塞在pipe或者队列里的请求.这样的话,只要OS可以接受tcp的连接,web服务器就可以处理该请求。大大提高了web服务器的可伸缩性。

我们来看一下配置,你只需要在server.xml里把 HTTP Connector做如下更改,

<Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000"  redirectPort="8443" />

改为

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"  connectionTimeout="20000"  redirectPort="8443" />

然后启动服务器,你会看到org.apache.coyote.http11.Http11NioProtocol start的信息,表示NIO已经启动。其他的配置请参考官方配置文档。

Enjoy it.

***贴上官方文档上对tomcat的三种Connector的方式做一个简单比较。

 Java Nio Blocking ConnectorJava Nio Blocking ConnectorAPR Connector
Classname Http11ProtocolHttp11NioProtocol Http11AprProtocol
Tomcat Version3.x 4.x 5.x 6.x 6.x 5.5.x 6.x
Support PollingNO YES YES
Polling SizeN/A Unlimited - Restricted by mem Unlimited
Read HTTP RequestBlocking Blocking Blocking
Read HTTP BodyBlocking Blocking Blocking
Write HTTP ResponseBlocking Blocking Blocking
SSL SupportJava SSL Java SSL OpenSSL
SSL HandshakeBlocking Non blocking Blocking
Max ConnectionsmaxThreads See polling size See polling size

“Tomcat NIO的配置方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Tomcat NIO的配置方法

本文链接: https://lsjlt.com/news/288813.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Tomcat NIO的配置方法
    本篇内容介绍了“Tomcat NIO的配置方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Tomcat 6.X实现了JCP的Servlet...
    99+
    2023-06-17
  • Idea配置tomcat的方法
    这篇文章主要讲解了“Idea配置tomcat的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Idea配置tomcat的方法”吧!目录创建一个maven项目项目结构添加框架在pom.xml...
    99+
    2023-06-20
  • Tomcat的配置方法是什么
    Tomcat的配置方法有两种:命令行配置和图形界面配置。1. 命令行配置:a. 打开Tomcat的安装目录。b. 进入conf文件夹...
    99+
    2023-09-11
    Tomcat
  • Tomcat下JSP的经典配置方法
    本篇内容主要讲解“Tomcat下JSP的经典配置方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Tomcat下JSP的经典配置方法”吧!***步:下载j2sd...
    99+
    2024-04-02
  • tomcat timeout配置的方法是什么
    Tomcat的超时配置方法取决于您希望配置的超时类型。以下是一些常用的超时配置方法:1. 连接超时配置:配置连接超时时间,即等待客户...
    99+
    2023-09-29
    tomcat
  • eclipse配置tomcat的方法是什么
    要配置Eclipse使用Tomcat作为服务器,可以按照以下步骤进行操作:1. 首先,确保已经在计算机上安装了Tomcat服务器,并...
    99+
    2023-09-22
    eclipse tomcat
  • tomcat配置jdk的方法是什么
    要配置Tomcat使用特定的JDK,可以按照以下步骤进行:1. 确保已经安装了JDK并设置了JAVA_HOME环境变量。2. 打开T...
    99+
    2023-08-17
    tomcat jdk
  • idea配置tomcat的方法是什么
    配置Tomcat的方法主要包括以下步骤: 下载Tomcat:首先需要从Tomcat官方网站(https://tomcat.apa...
    99+
    2024-04-08
    idea tomcat
  • Mac+IDEA+Tomcat配置的的方法步骤
    目录一:下载二,安装、解压三,启动Tomcat四,验证安装是否成功五,关闭Tomcat六,IDEA配置tomcat一:下载 打开Apache Tomcat官网,选择需要的版本下载: ...
    99+
    2024-04-02
  • 在Tomcat中配置SSL证书的方法
    这篇文章主要介绍了在Tomcat中配置SSL证书的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。我们假设已经在系统中安装了Tomcat服务器...
    99+
    2024-04-02
  • TOMCAT配置优化的方法是什么
    本篇内容主要讲解“TOMCAT配置优化的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“TOMCAT配置优化的方法是什么”吧!Tomcat连接器协议优化Tomcat 连接器的三种方式: ...
    99+
    2023-06-27
  • idea中配置tomcat的方法是什么
    本文小编为大家详细介绍“idea中配置tomcat的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“idea中配置tomcat的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.先安装Tomc...
    99+
    2023-07-05
  • tomcat路径配置的方法是什么
    在Tomcat中配置路径可以通过修改server.xml文件中的元素来实现。以下是一种常见的配置方法: 打开Tomcat安装目录...
    99+
    2024-03-02
    tomcat
  • eclipse中tomcat配置的方法是什么
    在Eclipse中配置Tomcat的方法如下: 首先确保已经在Eclipse中安装了Tomcat插件,可以在Eclipse Ma...
    99+
    2024-03-11
    eclipse tomcat
  • Tomcat的配置
    下载: 使用的是tomcat9.0解压版 安装: 根目录下的文件夹:   配置: 需要有Java的环境变量; 在idea中创建Tomcat idea为2022.3.2版本; 第一步:新建一个Module 第二步:在新建的module右键...
    99+
    2023-09-23
    java intellij-idea servlet
  • Spring通过Java配置集成Tomcat的方法
    添加Tomcat依赖 <!-- 自己编译的版本--> <dependency> <groupId>org.apache</gro...
    99+
    2024-04-02
  • 配置tomcat虚拟主机的方法是什么
    配置Tomcat虚拟主机的步骤如下:1. 在Tomcat的conf/server.xml文件中添加Host元素,指定虚拟主机的名称和...
    99+
    2023-06-08
    tomcat虚拟主机 虚拟主机
  • Tomcat配置环境变量的方法是什么
    配置Tomcat的环境变量可以通过以下方法:1. 手动配置:打开Tomcat安装目录下的bin文件夹,找到catalina.bat(...
    99+
    2023-09-15
    Tomcat
  • tomcat虚拟主机的配置方法是什么
    要配置Tomcat虚拟主机,您可以按照以下步骤进行操作:1、在Tomcat的conf/server.xml配置文件中添加一个Host...
    99+
    2023-03-21
    tomcat虚拟主机 虚拟主机
  • tomcat文件下载配置的方法是什么
    要配置Tomcat服务器以允许文件下载,可以按照以下步骤进行操作: 在Tomcat的配置文件server.xml中添加一个Cont...
    99+
    2024-04-09
    tomcat
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作