Weblogic使用NIO模型
Weblogic的執行緒數一直比較少,我一直認為他是採用的NIO模型,今天突然發現他的accept執行緒棧是採用的BIO,DynamicListenThread執行緒棧:
java.net.PlainSocketImpl.socketAccept(Native Method)
java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
– 已鎖定 java.net.SocksSocketImpl@1b77816
java.net.ServerSocket.implAccept(ServerSocket.java:453)
java.net.ServerSocket.accept(ServerSocket.java:421)
weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:38)
weblogic.server.channels.DynamicListenThread$SocketAccepter.accept(DynamicListenThread.java:535)
weblogic.server.channels.DynamicListenThread$SocketAccepter.access$200(DynamicListenThread.java:417)
weblogic.server.channels.DynamicListenThread.run(DynamicListenThread.java:173)
java.lang.Thread.run(Thread.java:619)
這讓我突然陷入了恐慌。資料顯示在新增
-Dweblogic.MuxerClass=weblogic.socket.NIOSocketMuxer之後,wls才會採用NIO. DynamicListenThread執行緒棧:
sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)
– 已鎖定 java.lang.Object@1dc22ad
weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:30)
weblogic.server.channels.DynamicListenThread$SocketAccepter.accept(DynamicListenThread.java:535)
weblogic.server.channels.DynamicListenThread$SocketAccepter.access$200(DynamicListenThread.java:417)
weblogic.server.channels.DynamicListenThread.run(DynamicListenThread.java:173)
java.lang.Thread.run(Thread.java:619
對這位前輩瞭解真得太少了。
weblogic共有三個Muxer(我也不知道該怎麼譯):
-
Java Muxer(It is also the only muxer available for RMI clients)
如果-Dweblogic.MuxerClass=weblogic.socket.NIOSocketMuxer被設定剛採用NIOSocketMuxer,否則如果NativeIOEnabled是true, 則採用
native muxer. 如果前兩個條件都不滿足,則會採用純java的Java Muxer。
雖然accept執行緒採用的是BIO,但weblogic實現了一套 native muxer,來處理請求讀寫。而這一套native muxer在unix平臺用得是多路複用(類似Java nio模型),在window平臺用的是完成埠(jdk7才有)。
本文轉自 anranran 51CTO部落格,原文連結:http://blog.51cto.com/guojuanjun/941697
相關文章
- NIO模型模型
- 【NIO系列】——之IO模型模型
- NIO(二)淺析IO模型模型
- Nio程式設計模型總結程式設計模型
- NIO實現的幾種模型模型
- Java NIO:淺析I/O模型Java模型
- NIO學習二、NIO的基本使用
- Java NIO1:I/O模型概述Java模型
- Java NIO Channel 使用Java
- Java NIO學習系列五:I/O模型Java模型
- java的nio之:淺析I/O模型Java模型
- Java非阻塞I/O模型之NIO說明Java模型
- Java NIO之Buffer的使用Java
- Java NIO Selector 的使用Java
- 五種I/O模型和Java NIO原始碼分析模型Java原始碼
- Java網路程式設計與NIO詳解10:深度解讀Tomcat中的NIO模型Java程式設計Tomcat模型
- 今天我們來聊Java IO模型,BIO、NIO、AIO三種常見IO模型Java模型AI
- Weblogic NodeManager 的配置使用Web
- 使用Java NIO 和 NIO2實現檔案輸入/輸出Java
- 【NIO】Java NIO之通道Java
- IO通訊模型(二)同步非阻塞模式NIO(NonBlocking IO)模型模式BloC
- weblogic 10.3使用80埠Web
- 【NIO】Java NIO之緩衝Java
- Java NIO系列2:NIO概述Java
- 【NIO】Java NIO之選擇器Java
- NIO學習一、NIO簡介
- Java網路程式設計和NIO詳解3:IO模型與Java網路程式設計模型Java程式設計模型
- 【死磕NIO】— NIO基礎詳解
- 從聯結器元件看Tomcat的執行緒模型——NIO模式元件Tomcat執行緒模型模式
- Java NIOJava
- weblogic程式高CPU使用率分析WebC程式
- 網路程式設計NIO:BIO和NIO程式設計
- From BIO to NIO —— NIO source code interpretation 1
- 【譯】Java NIO 簡明教程系列之 NIO 概述Java
- Java中使用新NIO.2讀寫檔案Java
- BIO、NIO、AIOAI
- Java NIO - BufferJava
- Java NIO - 群聊Java