SpringBoot TomCat 실행 방식 을 어떻게 변경 하 는 지 자세히 알 아 보기

1.SpringBoot 실행 방식 을 왜 변경 합 니까?
Tomcat 커 넥 터(커 넥 터)는 세 가지 실행 모드 가 있 습 니 다.bio nio apr
bio(blocking I/O)
  • 즉,차단 식 I/O 작업 은 Tomcat 이 전통 적 인 자바 I/O 작업(즉 자바.io 패키지 와 그 하위 패키지)을 사용 하고 JAVA 기반 HTTP/1.1 커 넥 터 이 며,Tomcat 7 이하 버 전 은 기본 적 인 상황 에서 bio 모드 로 실 행 됩 니 다.일반적으로 bio 모드 는 세 가지 운행 모드 중 성능 이 가장 낮은 것 이다.우 리 는 Tomcat Manager 를 통 해 서버 의 현재 상 태 를 볼 수 있 습 니 다.(Tomcat 7 이하,Linux 시스템 에서 기본적으로 사용)
  • 하나의 스 레 드 가 하나의 요 구 를 처리 하 는데 단점:병발 량 이 높 을 때 스 레 드 수가 비교적 많 고 자원 을 낭비 하 는 것
  • nio(new I/O)
  • 은 자바 SE 1.4 및 후속 버 전에 서 제공 하 는 새로운 I/O 작업 방식(즉 자바.nio 패키지 와 그 하위 패키지)이다.자바 니 오 는 버퍼 를 기반 으로 비 차단 I/O 작업 을 제공 할 수 있 는 자바 API 이기 때문에 니 오 도 non-blocking I/O(비 차단 IO)의 줄 임 말로 여 겨 진다.그것 은 전통 적 인 I/O 조작(bio)보다 더 좋 은 병행 운행 성능 을 가지 고 있다.Tomcat 을 nio 모드 로 실행 하려 면 Tomcat 설치 디 렉 터 리/conf/server.xml 에서 해당 하 는 중 프로 토 콜 의 속성 값 을 org.apache.coyote.http 11.Http11NioProtocol 로 변경 하면 됩 니 다
  • 
     <Connector port="1024" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   connectionTimeout="20000"
                   redirectPort="8443" />
    apr(Apache Portable Runtime/Apache 이식 실행 시)
  • Tomcat 은 JNI 형식 으로 Apache HTTP 서버 의 핵심 동적 링크 라 이브 러 리 를 호출 하여 파일 읽 기 나 네트워크 전송 작업 을 처리 함으로써 Tomcat 의 정적 파일 처리 성능 을 크게 향상 시 킬 것 이다.Tomcat apr 도 Tomcat 에서 높 은 병행 응용 을 실행 하 는 첫 번 째 모델 이다.운영 체제 등급 에서 비동기 적 인 IO 문 제 를 해결 합 니 다
  • tomcat 8.0 이상 기본 값 은 apr(낮은 버 전 으로 빨리 바 꾸 세 요)
  • 을 지원 합 니 다.
    SpringBoot 는 기본적으로java -Xmx256m -Xss256k -jar xx.jar내 장 된 Tomcat 시작 방식 을 실행 합 니 다.기본 값 은 NIO 이기 때문에 Apr 방식 으로 시작 하려 면 어떻게 해 야 합 니까?
    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>
    
    애플 리 케 이 션 시작 클래스 에서 SpringBootServletInitializer 의 구체 적 인 클래스 코드 는 다음 과 같 습 니 다.
    
    	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 에 던 져 서 실행 하 는 방식 을 사용 할 수 있 습 니 다.기본 값 은 apr 입 니 다.다음 그림 입 니 다.
    这里写图片描述
    SpringBoot TomCat 운영 방식 을 어떻게 바 꾸 는 지 에 대한 자세 한 설명 은 여기까지 입 니 다.SpringBoot TomCat 운영 방식 을 바 꾸 는 내용 은 이전 글 을 검색 하거나 다음 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기