前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tomcat 修改启动模式

Tomcat 修改启动模式

原创
作者头像
猎户星座1
修改2020-07-24 10:01:08
1.8K0
修改2020-07-24 10:01:08
举报
文章被收录于专栏:Java StudyJava Study

tomcat 有三种启动模式:BIO、NIO、APR

   BIO

tomcat 默认启动模式为bio 为block io  阻塞io 利用Java 中的 io 。每一个请求来就会创建一个新的线程去 处理请求

   NIO 启动模式

   对应这jdk 1.4 之后出现的 nio 新的 io解决技术,为非阻塞的io。利用的是 Selector 去处理多请求,不用去创建多个线程。

Selector(多路复用器)

JAVA NIO 的选择器使用一个线程去监视多个通道 ,具体通过轮询的方式,当通道上的已经准备就绪时好,再进行IO操作 ,不会像阻塞io 一样 会阻塞,导致后面的请求无法进行。

简单地讲Selector会不断地轮询注册在其上的Channel,如果某个Channel上面发生读或者写事件,这个Channel就处于就绪状态,会被Selector轮询出来,然后通过SelectionKey可以获取就绪Channel的集合,进行后续的IO操作。

服务端的selector上注册了读事件,某时刻客户端给服务端发送了一些数据,阻塞I/O这时会调用read()方法阻塞地读取数据,而NIO的服务端会在selector中添加一个读事件。服务端的处理线程会轮询地访问selector,如果访问selector时发现有没有自己要处理的事件到达,有则处理这些事件,如果没有感兴趣的事件到达,则处理线程会一直阻塞直到感兴趣的事件到达为止。 同步和异步就是一个要写while去轮询,一个就是提供回调逻辑。,所以这个轮询方法也意味着,NIO是同步的。 原文链接:https://blog.csdn.net/No_Game_No_Life_/java/article/details/101206866

   将tomcat conf 目录下的 server.XML中的  将protocol 改为 org.apache.coyote.http11.Http11NioProtocol 即可   http -nio -8999 处此使显示为已经配置成功

Tomcat 8.0 的版本以上都默认设置使用NIO 的启动方式 通过查看2.1.8 版本 spring boot  内置的 [Apache Tomcat/9.0.24] 服务器,发现日志中确实如此。

[2020-07-22 15:35:30,037] [INFO ] [main] [Starting ProtocolHandler ["http-nio-8080"]]

[2020-07-22 15:36:57,202] [INFO ] [http-nio-8080-exec-1]

<!-- tomcat 的默认启动为 bio <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> --> <!--设置为nio 的模式 --> <!-- <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" /> -->

<!-- 设置为apr模式启动 --> <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"

connectionTimeout="20000"

redirectPort="8443" />

   APR 模式

  将tomcat 设置为apr 模式 除了去修改,server.xml 处的配置文件外 ,还有在机器上安装所需要的依赖。

因为apr 模式是 使用jni 技术调用操作系统底层的IO接口,因此需要安装其他的环境。

apr 模式被誉为 Tomcat 生产环境的首选方式,能大幅度提高服务器的并发处理性能,因此配置apr 环境是很需要掌握的知识。

为配置 环境直接启动 tomcat 会报如下错误 :

配置方法参考:

https://www.cnblogs.com/jpfss/p/9269535.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •    BIO
  •    NIO 启动模式
  •    APR 模式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档