加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 服务器 > 系统 > 正文

【深入揭秘Tomcat服务器底层原理】扒下这只又爱又恨的“Tom猫”

发布时间:2019-11-27 22:32:45 所属栏目:系统 来源:站长网
导读:副标题#e# Tomcat是开源的 Java Web 应用服务器,实现了 Java EE 的部分技术规范,比如 Java Servlet、Java Server Page、JSTL、Java WebSocket。Java EE 是 Sun 公 司为企业级应用推出的标准平台,定义了一系列用于企业级开发的技术规范。除了上述的之外,

【深入揭秘Tomcat服务器底层原理】扒下这只又爱又恨的“Tom猫”

IO多路复用

【深入揭秘Tomcat服务器底层原理】扒下这只又爱又恨的“Tom猫”

阻塞与非阻塞的区别在于进行读操作和写操作的系统调用时,如果此时内核态没有数据可读或者没有缓冲空间可写时,是否阻塞。

IO多路复用的好处在于可同时监听多个socket的可读和可写事件,这样就能使得应用可以同时监听多个socket,释放了应用线程资源。

Tomcat各类Connector对比

【深入揭秘Tomcat服务器底层原理】扒下这只又爱又恨的“Tom猫”

Connector的实现模式有三种,分别是BIO、NIO、APR,可以在server.xml中指定。

JIO:用java.io编写的TCP模块,阻塞IO

NIO:用java.nio编写的TCP模块,非阻塞IO,(IO多路复用)

APR:全称Apache Portable Runtime,使用JNI的方式来进行读取文件以及进行网络传输

Apache Portable Runtime是一个高度可移植的库,它是Apache HTTP Server 2.x的核心。

APR具有许多用途,包括访问高级IO功能(如sendfile,epoll和OpenSSL),操作系统级功能(随机数生成,系统状态等)和本地进程处理(共享内存,NT管道和Unix套接字)。

表格中字段含义说明:

Support Polling:是否支持基于IO多路复用的socket事件轮询

Polling Size:轮询的最大连接数

Wait for next Request:在等待下一个请求时,处理线程是否释放,BIO是没有释放的,所以在keep-alive=true的情况下处理的并发连接数有限

Read Request Headers:由于request header数据较少,可以由容器提前解析完毕,不需要阻塞

Read Request Body:读取request body的数据是应用业务逻辑的事情,同时Servlet的限制,是需要阻塞读取的

Write Response:跟读取request body的逻辑类似,同样需要阻塞写

NIO处理相关类

【深入揭秘Tomcat服务器底层原理】扒下这只又爱又恨的“Tom猫”

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读