美文网首页
问题精选-Netty+Tomcat

问题精选-Netty+Tomcat

作者: AC编程 | 来源:发表于2021-03-01 09:17 被阅读0次

一、BIO、NIO 和 AIO 的区别?

BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理。线程开销大。

伪异步 IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资源。

NIO:一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有 I/O 请求时才启动一个线程进行处理。

AIO:一个有效请求一个线程,客户端的 I/O 请求都是由 OS 先完成了再通知服务器应用去启动线程进行处理。

BIO 是面向流的,NIO 是面向缓冲区的;BIO 的各种流是阻塞的。而 NIO 是非阻塞的;BIO 的Stream 是单向的,而 NIO 的 channel 是双向的。

NIO 的特点:事件驱动模型、单线程处理多任务、非阻塞 I/O,I/O 读写不再阻塞,而是返回0、基于 block 的传输比基于流的传输更高效、更高级的 IO 函数 zero-copy、IO 多路复用大大提高了 Java 网络应用的可伸缩性和实用性。基于 Reactor 线程模型。

二、NIO 的组成?

Buffer:与 Channel 进行交互,数据是从 Channel 读入缓冲区,从缓冲区写入 Channel 中的。

flip 方法 : 反转此缓冲区,将 position 给 limit,然后将 position 置为 0,其实就是切换读写模式。

clear 方法 :清除此缓冲区,将 position 置为 0,把 capacity 的值给 limit。

rewind 方法 : 重绕此缓冲区,将 position 置为 0

Channel:表示 IO 源与目标打开的连接,是双向的,但不能直接访问数据,只能与 Buffer 进行交互。

三、Tomcat 有哪几种 Connector 运行模式(优化)?

bio:传统的 Java I/O 操作,同步且阻塞 IO。

nio:JDK1.4 开始支持,同步阻塞或同步非阻塞 IO。指定使用 NIO 模型来接受 HTTP 请求protocol=”org.apache.coyote.http11.Http11NioProtocol” 指定使用 NIO 模型来接受 HTTP 请求。默认是 BlockingIO,配置为protocol=”HTTP/1.1”acceptorThreadCount=”2” 使用 NIO 模型时接收线程的数目。

aio(nio.2):JDK7 开始支持,异步非阻塞 IO。

apr:Tomcat 将以 JNI 的形式调用 Apache HTTP 服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地 提高Tomcat对静态文件的处理性能。

相关文章

  • 问题精选-Netty+Tomcat

    一、BIO、NIO 和 AIO 的区别? BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进...

  • 原 netty导致tomcat假死

    一、系统需求: 保证后台系统在大并发下正常处理每一个业务连接请求。 二、运作方式: Netty+tomcat。在t...

  • 问题精选-MyBatis

    一、简述 Mybatis 的插件运行原理,以及如何编写一个插件? 1、Mybatis 仅可以编写针对 Parame...

  • 问题精选-Java

    一、&和&&的区别 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 二、Collection...

  • 问题精选-MySQL

    一、一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再...

  • 问题精选-Spring

    一、Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的? 启动类上面的注解是@SpringBoot...

  • 问题精选-JVM

    一、内存模型以及分区,需要详细到每个区放什么 JVM 分为堆区、栈区、方法区、本地方法栈、程序计数器 方法区:主要...

  • 微信小程序开发 | 官方问答精选

    SF问答精选《七》 多组件显示与隐藏如何实现、function中的...SF问答精选《六》canvas不显示问题S...

  • 常见问题精选

    问题1 为什么下单后,在公众号看不到订单? 回答: 下单成功后,一般15分钟内订单就会更新成功,第一次下单的,把订...

  • 问题精选-多线程

    一、现在有 T1、T2、T3 三个线程,你怎样保证 T2 在 T1 执行完后执行,T3 在 T2 执行完后执行? ...

网友评论

      本文标题:问题精选-Netty+Tomcat

      本文链接:https://www.haomeiwen.com/subject/blihxltx.html