1. HTTP 1.1 Connector
- 특정 TCP 포트에서 연결을 받아서, 요청을 처리를 하게 하는 입구 (Engine으로 넘겨 처리함)
- non-async 요청 1개당 worker thread 1개를 처리 동안 점유함
2. Attributes
Common Attributes
| 속성 | 설명 | 의미 |
| protocol | 어떤 HTTP connector 구현을 사용할지 정하는 설정 | 현재 톰캣이 NIO 기반으로 동작하는지 이해하는 기준 |
| asyncTimeout | 비동기 요청의 기본 timeout 시간 | async 요청이 오래 걸릴 때 timeout 원인 해석 가능 |
| maxParameterCount | 요청에서 허용할 최대 파라미터 개수 | 파라미터 폭주나 비정상 요청으로부터 서버 보호 |
| maxPartCount | multipart 요청에서 허용할 최대 part 개수 | 파일 업로드 요청이 메모리를 과하게 쓰는 상황 방지 |
| maxPostSize | 파라미터로 변환될 POST body의 최대 크기 | 과도하게 큰 요청 본문 제한 |
| port | Connector가 연결을 기다리는 TCP 포트 번호 | 어떤 포트가 현재 요청 입구인지 식별 가능 |
Standard Implementation
| 속성 | 설명 | 의미 |
| maxThreads | 동시에 요청을 처리할 worker thread 최대 수 | 동시 요청 처리 상한을 결정 |
| maxConnections | 동시에 받아들여 유지할 수 있는 연결 최대 수 | thread가 부족해도 Tomcat이 붙잡아둘 수 있는 연결 상한 |
| acceptCount | maxConnections를 넘었을 때 OS backlog queue에서 대기 가능한 연결 수 | 과부하 시 마지막 대기 구간의 크기 |
| executor | 외부 Executor를 사용할지 여부 | 내부 thread pool을 쓸지, 외부 공유 executor를 쓸지 결정 |
| minSpareThreads | 항상 유지하려는 최소 thread 수 | 요청이 갑자기 와도 바로 처리할 수 있는 최소 준비 상태 유지 |
| threadsMaxIdleTime | 여분 thread를 idle 상태로 얼마나 유지할지 | 부하 감소 후 thread를 언제 줄일지 결정 |
| connectionTimeout | 연결 수락 후 요청 라인을 얼마나 기다릴지 | 느린 클라이언트 때문에 connection이 오래 묶이는 상황 제어 |
| connectionUploadTimeout | 업로드 중 사용할 timeout | 대용량 업로드 시 timeout 동작 구분 가능 |
| disableUploadTimeout | 업로드용 긴 timeout 사용 여부 | 업로드 시 일반 요청과 다른 timeout 정책 적용 여부 결정 |
| keepAliveTimeout | keep-alive 연결에서 다음 요청을 얼마나 기다릴지 | 요청은 적은데 connection 수가 많은 상황 설명 가능 |
| maxKeepAliveRequests | 한 연결에서 재사용 가능한 요청 수 | keep-alive 연결의 수명을 제한 |
| maxHeaderCount | 요청에서 허용할 최대 header 개수 | 비정상 요청 방어 및 헤더 폭주 제한 |
| maxHttpRequestHeaderSize | 요청 라인 + 헤더의 최대 크기 | 헤더가 클수록 request당 heap 사용이 커지는 원인 파악 가능 |
| processorCache | Processor 객체 재사용 캐시 크기 | 성능 향상과 GC 부하 사이의 균형점 |
| executorTerminationTimeoutMillis | connector 종료 시 내부 executor가 thread 종료를 기다리는 시간 | 종료/정지 시 thread 정리 behavior 이해 가능 |
| threadPriority | request-processing thread의 우선순위 | thread 실행 우선순위 조정 가능 |
| useVirtualThreads | 내부 executor에서 virtual thread 사용 여부 | 플랫폼 thread 대신 virtual thread 기반 처리 여부를 결정 |
Java TCP socket attributes
NIO specific configuration
NIO2 specific configuration
출처
'Spring > Spring MVC' 카테고리의 다른 글
| [Tomcat 11] 1. Architecture (0) | 2026.04.16 |
|---|---|
| [Tomcat] 1. Introduction (0) | 2025.04.14 |
| [Spring MVC] 7. HTTP Caching (0) | 2025.04.14 |
| [Spring MVC] 6. Error Response (0) | 2025.04.12 |
| [Spring MVC] 3. HTTP Message Conversion (0) | 2025.04.12 |