设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 服务器 > 系统 > 正文

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

发布时间:2019-11-27 12:48 所属栏目:52 来源:站长网
导读:IO多路复用 阻塞与非阻塞的区别在于进行读操作和写操作的系统调用时,如果此时内核态没有数据可读或者没有缓冲空间可写时,是否阻塞。 IO多路复用的好处在于可同时监听多个socket的可读和可写事件,这样就能使得应

【深入揭秘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猫”

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读