SpringBoot TomCatの運転方式はどうやって変更しますか?


1.なぜSpringBootの運転方式を変更しますか?
Tomcat Connector(コネクタ)は三つの運転パターンがあります。bio nio ap
bio(blocking I/O)
  • は閉塞式I/O動作であり、Tomcatが従来のJava I/O動作(すなわちjava.ioカバンとそのサブパケット)を使用していることを示し、JAVAベースのHTTP/1.1コネクタであり、Tomcat 7以下のバージョンはデフォルトではbioモードで動作している。一般的に、bioモードは3つの運転モードの中で最も性能が低いものです。私たちはTomcat Managerを通じてサーバーの現在の状態を確認できます。Tomcat 7または以下、Linuxシステムではこのような方式がデフォルトで使用されている)
  • スレッドは一つの要求を処理します。
    nio(new I/O)
  • は、Java SE 1.4および後続のバージョンによって提供される新しいI/O動作方式(すなわち、java.nioパケットおよびそのサブパケット)である。Java nioはバッファに基づいて、非ブロッキングI/O動作を提供できるJava APIであるので、nioはnon-blocking I/O(非ブロッキングIO)の略語とも見なされている。従来のI/O操作(bio)よりも優れた同時運転性能を持っています。Tomcatをnioモードで動作させるには、Tomcatインストールディレクトリ/conf/server.xmlで対応するプロトタイプの属性値をorg.apphe.com yote.http 11 NioProtocolに変更すればいいです。
    
     <Connector port="1024" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   connectionTimeout="20000"
                   redirectPort="8443" />
    apper(Apache Portable Runtime/Appacheグラフト運転可能時)
  • Tomcatは、JNIの形でApache HTTPサーバのコアダイナミックリンクライブラリを呼び出してファイルの読み込みやネットワーク転送操作を処理し、Tomcatの静的ファイルに対する処理性能を大きく向上させる。Tomcat apprもTomcatで高合併アプリケーションを実行する優先モードです。非同期のIO問題をオペレーティングシステムレベルから解決する
  • tomcat 8.0以上のデフォルトはすでにアプリをサポートしています。
  • Spring Bootはデフォルトではjava -Xmx256m -Xss256k -jar xx.jarで内蔵Tomcat起動方式を実行していますが、デフォルトはNIOですので、App方式で起動したいですが、どうすればいいですか?
    2.SpringBootを除去してTomcat容器を内蔵します。
     pomファイルを変更
    
    	 <packaging>jar</packaging>   => <packaging>war</packaging>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <!--      tomcat  --> 
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
            <!--     Tomcat      servlet -->
            <dependency>
    		    <groupId>javax.servlet</groupId>
    		    <artifactId>javax.servlet-api</artifactId>
    		    <version>${servlet.version}</version>
    		    <scope>provided</scope>
    		</dependency>
    
    アプリ起動クラスではSpring BootServletInitializerの具体的な種類のコードを引き継ぎます。
    
    	package com.ctx.springboot;
    	import org.springframework.boot.autoconfigure.SpringBootApplication;
    	import org.springframework.boot.builder.SpringApplicationBuilder;
    	import org.springframework.boot.web.support.SpringBootServletInitializer;
    	@SpringBootApplication
    	public class SpringBootStartApplication extends SpringBootServletInitializer {
    		@Override
    		protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    			return builder.sources(SpringBootStartApplication.class);
    		}
    	}
    
    このようにSpringBootプロジェクトをwarに包んで8.0以上のtomcatに捨てて走る方式を使ってデフォルトではapprになります。
    这里写图片描述
    ここで、Spring Boot TomCatの運行方式を変更する方法について詳しく説明します。Spring Boot TomCatの運行方式の変更については、以前の文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。