Tomcat Connector
Tomcat是最常用的web容器之一,Tomcat Connector有bio、nio、apr三种运行模式:
Tomcat运行模式:
- bio
bio(blocking I/O),顾名思义,即阻塞式I/O操作,表示Tomcat使用的是传统的Java I/O操作(即java.io包及其子包)。Tomcat在默认情况下,就是以bio模式运行的。遗憾的是,就一般而言,bio模式是三种运行模式中性能最低的一种。 - nio
nio(new I/O),是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的缩写。它拥有比传统I/O操作(bio)更好的并发运行性能。 - apr
apr(Apache Portable Runtime/Apache可移植运行时),是Apache HTTP服务器的支持库。你可以简单地理解为,Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地提高Tomcat对静态文件的处理性能。 Tomcat apr也是在Tomcat上运行高并发应用的首选模式。
httpprotocol
- HTTP/1.1
- org.apache.coyote.http11.Http11Protocol –BIO实现
- org.apache.coyote.http11.Http11NioProtocol –NIO实现
- 定制的接口
配置“HTTP/1.1”和“org.apache.coyote.http11.Http11Protocol”的效果是一样的,因此connector的HTTP协议实现缺省是支持BIO的。无论是BIO还是NIO都是实现一个org.apache.coyote.ProtocolHandler接口,因此如果需要定制化,也必须实现这个接口。
private Connector createTomcatConnector() {Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");connector.setScheme("http");connector.setPort(8080);connector.setSecure(false);connector.setRedirectPort(8081);return connector;}
这里在new一个Tomcat Connector时,传入的httpprotocol如果写为org.apache.coyote.http11.Http11Protocol,项目启动会报错:
断点跟进去会发现:connector.setPort(8080)没有生效
初始化httpprotocol改为org.apache.coyote.http11.Http11NioProtocol:
会发现修改生效了。
Tomcat Connector相关推荐
- 8080:The Tomcat connector configured to listen on port 8080 failed to start 的解决办法
问题再现: 控制台最后会显示Application启动失败,如下: ...*************************** APPLICATION FAILED TO START ******* ...
- 修改Tomcat Connector运行模式,优化Tomcat运行性能
这篇博客写得很好,记下来了:http://www.cnblogs.com/freeweb/p/6430053.html http://blog.csdn.net/xyang81/article/det ...
- 【Tomcat】Tomcat Connector的三种运行模式【bio、nio、apr】
Tomcat Connector(Tomcat连接器)有bio.nio.apr三种运行模式 bio bio(blocking I/O,阻塞式I/O操作),表示Tomcat使用的是传统的Java I/O ...
- Tomcat Connector的三种运行模式【bio、nio、apr】
Tomcat Connector(Tomcat连接器)有bio.nio.apr三种运行模式 bio bio(blocking I/O,阻塞式I/O操作),表示Tomcat使用的是传统的Java I/O ...
- The Tomcat connector configured to listen on port 8082 failed to start.启动web项目报错
8082端口被占用 用IDEA连tomcat做web,特意换了8082接口,之前都好好的,这次突然打不开了.显示The Tomcat connector configured to listen on ...
- 【tomcat 端口占用启动失败】The Tomcat connector configured to listen on port xx failed to start
[tomcat 启动报错]The Tomcat connector configured to listen on port 80failed to start问题解决 1.打开cmd 在CMD中输入 ...
- The Tomcat connector configured to listen on port xxxxx failed to start.The port may already be used
在学习SpringBoot过程中, 遇到了各种问题- Windows下如何查看某个端口被谁占用 错误过程: *************************** APPLICATION FAILED ...
- Tomcat Connector运行模式从bio方式改成nio方式
并发数过高时,会导致等待响应的线程(空闲的线程)超过Tomcat设置限制的最大值,所以tomcat停止响应了, 优化方案(把Tomcat Connector运行模式从bio方式改成nio方式{nio性 ...
- Tomcat connector 实现原理
Bootstrap.main()->Bootstrap.init() bootstrap.init() 方法中设置catalinaDaemon 创建 Connector 对象 Bootstrap ...
最新文章
- 导入旧版本Android项目时的“Unable to resolve target ‘android
- solr模糊查询_《Solr实战》之一
- 小程序 | 打开CMS时出现了404报错?
- IOS-OC-基本控件之UITextField
- vs 编译设置obj路径_编译、连接
- 第3章 控制程序流程(1)
- python身份证号码解析编程_Python实现身份证号码解析
- 手机上做c语言作业的软件下载,c语言编程软件手机版下载-C语言编程 安卓版v1.0.2-PC6安卓网...
- 用excel实现工作日志的更新和汇总
- Maya - 后缀为xgen文件导出到虚幻引擎
- onetab丢失崩溃怎么办?快试试我这个类似功能的插件吧,也可以当做插件开发入门教程
- Docker之工作中常用的命令(二)
- type-c耳机方案
- 远程终端工具Xshell、Xftp传输工具、VMware 、CentOS7的下载、安装和使用教程(完整版)
- 关闭centos7下哔哔声
- Big5 = GBK GBK = Big5 GB2312 = GBK GBK = GB2312 互转
- PHP生成微信小程序带参数的二维码,可生成带参数二维码
- html跳转qq浏览器,为何QQ浏览器主页自动跳转
- 使用jQuery中ajax实例
- SSO-单点登录(1)