톰캣 원리와 에세이의 최적화

1. 기본 구성 요소 :

     섬기는 사람,

     서비스:

        커넥터 (HTTP, HTTPS, AJP 아파치 프록시 역), 엔진

        엔진:

              한 UserDatabaseRealm 같은 보안 설정 등을위한 영역

 

              호스트 : 밸브 체인과 같은 내장 된 로그 기록에 액세스 할 수 있습니다 AccessLogValve에

 

     정적 리소스의 통합 치료를 DefaultServlet :

            공정 : 파일이 판독되고 있는지 여부를, 리소스 파일이 있는지의 여부를 판정하는 방법의 doGet 파일 형식 스트림 콘텐츠 유형에 따라서는, 시간 출력 파일에 기록

     JspServlet는 JSP 요청 : URL 패턴 = * .jsp로 또는 * .jspx

             JSP 컴파일 과정 : JspServlet 결정 여부 (예 : 클래스 파일의 수정 시간 및 JSP 다른 파일 수정 시간으로, 바람둥이 새로운 클래스 로더로드 같은 JSP를 작성합니다) Servelt JSP 파일 생성 / 만료,

            톰캣 DEV 모드를 종료하는 경우 서블릿에 의해 생성 된 파일 컴파일러가 메소드 _jspService Servelt 전화, 동적 로더 실패

    HttpServletRequest의 : 외관 패턴을 사용

           경우 getParameter 방법은, 상기 파싱 된 매개 변수가없는 경우, 키 파라미터는 각되도록지도 <문자열 일람> 구조로 파싱 파라미터를 분석 할 것인지 판단

           당신이 호출 할 때의 getParameter 방법의 첫 번째 값의 키를 반환

    필터, FilterChain은 : doFilter 방법의 모든 완료된 통화의 FilterChain 후 필터 다음 필터를 호출

    커넥터 : 다른 프로토콜 ProtocolHandler를 사용하는 구성에 따라이 요청 처리기에 의해 처리되므로, 같은 Http11NioProtocol

                      파일 것이다 커넥터는 CPU 사용률을 줄여 압축없이 전송 48K 직접 sendfile을 (channel.transferTo)를 초과

    내부 요청 수신 처리 용 끝점 처리기

    집행 인 : 커넥터 스레드 풀을 사용하도록 구성 할 수 있습니다

 

    跨域请求: response.setHeader ( " 액세스 제어 - 허용 - 기원 ", "*"); CorsFilter

    최적화는 톰캣 GC : GC는 애플리케이션의 지연 및 처리량 특성에 따라 적당한 알고리즘을 선택

                ParallelGC 처리량의 우선 순위는, 낮은 지연 시간에 대한 수요를 충족시킬 수 없다

                CMS는 :의 이전 복구 및 병렬 응용 프로그램, 낮은 지연합니다 (-XX 구성해야합니다 : + UseParNewGC 병렬 복구의 새로운 세대의 구현을의 기본 단일 스레드), 싱글 코어 서버를 구성해야합니다

                CMS 응용 프로그램 스레드와 CPU 수집 스레드 공유 비율 (가비지 컬렉터를 실행하는 응용 프로그램 스레드를 번갈아).

               -XX : 전체 GC 시간 이전 세대의 + UseCMSCompactAtFullCollection 압축

               -XX : + UseG1GC

               -XX : + DisableExplicitGC를 : 열 권장하지 않습니다, 코드 외부 자바 NIO 힙 메모리를 명시 적으로 호출했다으로 System.gc 

    ELParser : EL 분석 식

    로드 클래스 : 

          웹 애플리케이션 클래스 로더 : 먼저 자신의 클래스 경로에서 찾을 수 없습니다,로드 다시 의뢰됩니다 부모 (다시로드 할 수 없습니다 기본 클래스와 서블릿 API를 다시로드 할 수 없습니다)

                         WebappClassloader를 사용하여 응용 프로그램의 다른 예

                         부모는 스페이서 웹 응용 프로그램의 복수를 달성하기 위해 위임되지 않은 경우

                         응용 프로그램이 시작되면 해당 WebappClassLoader을 만듭니다

         일반적인 클래스 로더 : 부모 WebappClassloader, 일반적인 모든 응용 프로그램을 볼 수 클래스

추천

출처www.cnblogs.com/showing/p/11766233.html