小记tomcat三种运行模式

2018-09-12  本文已影响0人  yellow_han

一、Connector有bio、nio、apr三种运行模式

1、Java BIO : 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理。可通过线程池机制改善。
2、Java NIO : 同步非阻塞,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。
3、Java AIO(NIO.2) : 异步非阻塞,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS(操作系统)先完成了再通知服务器应用去启动线程进行处理。

BIO:

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

BIO缺点:
当客户端多时,会创建大量的处理线程。每个线程都要占用栈空间和一些CPU时间。
阻塞可能带来频繁的上下文切换,而大部分的上下文切换是无意义的。
就一般而言,BIO模式是三种运行模式中性能最低的一种。

NIO:

<Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
               connectionTimeout="20000"
               redirectPort="8443" />

NIO的工作原理包括:
1.由一个专门的线程来处理所有的 I/O 事件、并负责分发。
2.事件驱动机制,而不再同步地去监视事件。
3.线程之间通过 wait,notify 等方式通讯。保证每次上下文切换都是有意义的,减少无谓的线程切换。

APR:apr(Apache portable Run-time libraries/Apache可移植运行库)是Apache HTTP服务器的支持库。

<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
                connectionTimeout="20000"
                redirectPort="8443" />

tomcat apr配置方法:https://www.cnblogs.com/freeweb/p/6430053.html

上一篇下一篇

猜你喜欢

热点阅读