成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析Tomcat NIO 配置

開發 后端
Tomcat 6.X實現了JCP的Servlet 2.5和JSP2.1的規范,并且包括其它很多有用的功能,使它成為開發和部署web應用和web服務的堅實平臺。

Tomcat 6.X實現了JCP的Servlet 2.5和JSP2.1的規范,并且包括其它很多有用的功能,使它成為開發和部署web應用和web服務的堅實平臺。

NIO (No-blocking I/O)從JDK 1.4起,NIO API作為一個基于緩沖區,并能提供非阻塞I/O操作的API被引入。

作為開源web服務器的java實現,tomcat幾乎就是web開發者開發、測試的***,有很多其他商業服務器的開發者也會優先選擇tomcat作為開發時候使用,而在部署的時候,把應用發布在商業服務器上。也有許多商業應用部署在tomcat上,tomcat承載著其核心的應用。但是很多開發者很迷惑,為什么在自己的應用里使用tomcat作為平臺的時候,而并發用戶超過一定數量,服務器就變的非常繁忙,而且很快就出現了connection refuse的錯誤。但是很多商業應用部署在tomcat上運行卻安然無恙。

其中有個很大的原因就是,配置良好的tomcat都會使用APR(Apache Portable Runtime),APR是Apache HTTP Server2.x的核心,它是高度可移植的本地庫,它使用高性能的UXIN I/O操作,低性能的java io操作,但是APR對很多Java開發者而言可能稍稍有點難度,在很多OS平臺上,你可能需要重新編譯APR。但是從Tomcat6.0以后, Java開發者很容易就可以是用NIO的技術來提升tomcat的并發處理能力。

但是為什么NIO可以提升tomcat的并發處理能力呢,我們先來看一下java 傳統io與 java NIO的差別。

Java 傳統的IO操作都是阻塞式的(blocking I/O), 如果有socket的編程基礎,你會接觸過堵塞socket和非堵塞socket,堵塞socket就是在accept、read、write等IO操作的的時候,如果沒有可用符合條件的資源,不馬上返回,一直等待直到有資源為止。而非堵塞socket則是在執行select的時候,當沒有資源的時候堵塞,當有符合資源的時候,返回一個信號,然后程序就可以執行accept、read、write等操作,一般來說,如果使用堵塞socket,通常我們通常開一個線程accept socket,當讀完這次socket請求的時候,開一個單獨的線程處理這個socket請求;如果使用非堵塞socket,通常是只有一個線程,一開始是select狀,當有信號的時候可以通過 可以通過多路復用(Multiplexing)技術傳遞給一個指定的線程池來處理請求,然后原來的線程繼續select狀態。 最簡單的多路復用技術可以通過java管道(Pipe)來實現。換句話說,如果客戶端的并發請求很大的時候,我們可以使用少于客戶端并發請求的線程數來處理這些請求,而這些來不及立即處理的請求會被阻塞在java管道或者隊列里面,等待線程池的處理。請求 聽起來很復雜,在這個架構當道的java 世界里,現在已經有很多優秀的NIO的架構方便開發者使用,比如Grizzly,Apache Mina等等,如果你對如何編寫高性能的網絡服務器有興趣,你可以研讀這些源代碼。

簡單說一下,在web服務器上阻塞IO(BIO)與NIO一個比較重要的不同是,我們使用BIO的時候往往會為每一個web請求引入多線程,每個web請求一個單獨的線程,所以并發量一旦上去了,線程數就上去了,CPU就忙著線程切換,所以BIO不合適高吞吐量、高可伸縮的web服務器;而NIO則是使用單線程(單個CPU)或者只使用少量的多線程(多CPU)來接受Socket,而由線程池來處理堵塞在pipe或者隊列里的請求.這樣的話,只要OS可以接受TCP的連接,web服務器就可以處理該請求。大大提高了web服務器的可伸縮性。

我們來看一下配置,你只需要在server.xml里把 HTTP Connector做如下更改,

  1. <Connector port="8080" protocol="HTTP/1.1"  
  2. connectionTimeout="20000"  
  3. redirectPort="8443" /> 

改為

  1. <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"  
  2. connectionTimeout="20000"  
  3. redirectPort="8443" /> 

然后啟動服務器,你會看到org.apache.coyote.http11.Http11NioProtocol start的信息,表示NIO已經啟動。其他的配置請參考官方配置文檔。

Enjoy it.

***貼上官方文檔上對tomcat的三種Connector的方式做一個簡單比較。

  Java Nio Blocking Connector Java Nio Blocking Connector APR Connector
Classname  Http11Protocol Http11NioProtocol  Http11AprProtocol
Tomcat Version 3.x 4.x 5.x 6.x  6.x  5.5.x 6.x
Support Polling NO  YES  YES
Polling Size N/A  Unlimited - Restricted by mem  Unlimited
Read HTTP Request Blocking  Blocking  Blocking
Read HTTP Body Blocking  Blocking  Blocking
Write HTTP Response Blocking  Blocking  Blocking
SSL Support Java SSL  Java SSL  OpenSSL
SSL Handshake Blocking  Non blocking  Blocking
Max Connections maxThreads  See polling size  See polling size

原文鏈接:http://northc.iteye.com/blog/1290186

【編輯推薦】

  1. Java NIO API詳解
  2. Java NIO基本使用實例
  3. Java NIO的介紹及工作原理
  4. Apache Ant對決Make:實戰Java構建工具
責任編輯:林師授 來源: northc的博客
相關推薦

2009-07-10 14:04:12

MyEclipse5.

2019-12-31 14:59:06

TomcatNIOJava

2014-04-18 09:55:49

Tomcat 8NIO 2

2009-07-21 11:12:00

iBATIS配置

2009-06-24 16:23:29

jBPM 4.0配置

2023-12-21 21:09:47

2009-07-16 14:58:03

WebWork安裝WebWork配置

2009-09-22 10:23:15

Hibernate配置

2009-07-22 15:01:01

iBATIS SQLM

2009-07-15 10:43:37

MyEclipse D

2010-05-24 15:41:47

SVN配置教程

2009-07-22 09:44:05

iBATIS Para

2009-07-14 17:53:11

WebWork安裝WebWork配置

2024-11-29 10:23:35

2010-09-25 13:31:00

TomcatJVM

2009-07-15 14:08:06

MyEclipse T

2009-07-14 13:55:24

MyEclipse S

2009-07-14 17:31:34

MyEclipse提示

2009-09-25 10:49:25

Hibernate加載

2010-02-23 11:26:56

Python 測試框架
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av一二三区 | 国产一区二区三区不卡av | 91精品一区二区三区久久久久 | 久久久免费观看视频 | 91影院| 在线免费观看日本 | 日本天堂视频在线观看 | 九九热在线视频 | 国产综合久久 | 成人午夜电影网 | 久久视频精品 | 国产精品久久久久久吹潮 | 一区二区三区四区不卡视频 | 国产精品亚洲一区二区三区在线 | 黄色一级大片在线免费看产 | 依人成人| av大片在线观看 | 久久午夜影院 | 国产精品激情小视频 | 久久久久久国产精品免费免费狐狸 | 午夜精品一区 | 欧美中文字幕一区二区 | 欧美精品一区二区三区在线播放 | 色精品| 久久久久久久久久久久亚洲 | 欧美国产日韩在线观看成人 | 91p在线观看 | 国产精品区一区二区三 | 在线观看国产网站 | 日韩中文一区二区三区 | 日韩精品免费在线 | 日韩欧美在线不卡 | 久久久久国产精品一区 | 91成人午夜性a一级毛片 | 中文字幕视频在线观看 | 中文字幕高清一区 | 国产综合精品一区二区三区 | 国产精品69久久久久水密桃 | 无码日韩精品一区二区免费 | 正在播放一区二区 | 狠狠av |