<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                最近在研究http異步客戶端。? 看到了一堆名詞,servlet3.0,jetty,tomcat,HttpAsyncClient? netty,mina? nio,nio2.0,iocp等等。略混亂? ?? 我的問題就是:netty跟tomcat是同樣的概念么? netty官方說是個框架,那他是否還需要web容器支持?如果我客戶端使用netty,服務端使用tomcat也是能連上的吧?是不是可以用netty的客戶端和服務端 直接替換掉HttpAsyncClient和tomcat?? ??? 自己整理的思路是:? 1. 就IO而言:概念上有5中模型:blocking I/O,nonblocking I/O,I/O multiplexing (select and poll),signal driven I/O (SIGIO),asynchronous I/O (the POSIX aio_functions)。? 2. 然后呢 不同的操作系統對上述模型支持不同: unix支持io多路復用,不同系統叫法不同 :freebsd里面叫 kqueue;linux 是epoll。而windows: 2000的時候就誕生了IOCP支持最后一種異步I/O? 3. java是一種跨平臺語言,為了支持異步IO,誕生了nio,Java1.4引入的NIO 1.0是基于I/O復用的。在各個平臺上會選擇不同的復用方式。Linux用的epoll,BSD上用kqueue,Windows上應該是重疊I/O(肯定不是IOCP)。? ?? NIO 2.0里終于有AIO了,Linux上用AIO,Windows上用IOCP,都支持了概念上的最后一種IOasynchronous I/O?? ?? 4. 然后基于jdk的nio ,不同公司出了一堆框架:apache mina ,jboss的netty,sun的grizzly。? 這些都是直接封裝傳輸層的tcp/udp。然后servlet3.0是基于傳輸層的,針對于http的。? tomcat和jetty都是web容器,對servlet3.0的api提供了不同的實現(實際也都是基于nio?)? HttpAsyncClient這個就是異步的http客戶端(實際上也是基于java nio)? ?? 我的問題就是:netty跟tomcat是同樣的概念么? netty官方說是個框架,那他是否還需要web容器支持?如果我客戶端使用netty,服務端使用tomcat也是能連上的吧?是不是可以用netty的客戶端和服務端 直接替換掉HttpAsyncClient和tomcat?另外上述陳述部分有問題的請指出~? ?? 問題略長..問題前后提了兩遍=。= 謝謝各位了~ 來自 <http://www.iteye.com/problems/92400> #### A1 > 1. 1,2,3全中.? > 但是nio直接使用比較難用,所以有了mina,netty這些針對網絡io部分(tcp/udp-傳輸層)的封裝(nio也有非網絡io部分),為了使nio更易用。? > http是應用層的協議。? > servlet3.0則是另外一種東西,不是對協議的封裝,javaee6眾多規范中的一個,但凡javaee6的實現(或者像tomcat這種web容器部分的實現),都會支持servlet3.0,servlet理論上可以支持多種應用層協議(不單單只是http),而servlet3.0以后提供的異步特性與javase提供的nio或aio無直接關系,就是使用bio一樣可以實現servlet3.0中提供的異步特性。? > 異步只是一種概念,異步與否要看,上層使用的異步,而支持的下層完全可能是阻塞的。? > 2. netty跟tomcat是同樣的概念么?? > 不是? > 3. netty官方說是個框架,那他是否還需要web容器支持?? > 不需要? > 4. 如果我客戶端使用netty,服務端使用tomcat也是能連上的吧?? > 可以,比如客戶端直接使用netty構造http協議與tomcat支持的servlet通信? > 是不是可以用netty 的客戶端和服務端 直接替換掉HttpAsyncClient和tomcat?? > 不是很明白你的意思...netty的客戶端和服務端、HttpAsyncClient、tomcat...三者之間似乎不存在關系...看你的通訊協議了? > 來自 <http://www.iteye.com/problems/92400> #### A2 > 感覺是樓主搞混了netty和jetty。? > jetty是容器,和tomcat是同樣的概念,但是具體實現不同。? > netty是socket框架,和MINA是同樣的概念,但是具體實現不同。 > 來自 <http://www.iteye.com/problems/92400> #### A3 > netty和mina屬于NIO封裝框架。Tomcat使用了相關的技術,但屬于servlet容器。 > 來自 <http://www.iteye.com/problems/92400>
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看