es_rejected_execution_exception: es_rejected_execution_exception: rejected execution of ... on ... (queue capacity ...) (HTTP 429)
Elasticsearch의미
해당 thread pool(search, write/bulk 등)의 큐 용량이 가득 차 작업이 거부되었다. 과부하 상태에서 Elasticsearch는 요청을 거절해 스스로를 보호하며(backpressure) HTTP 429(Too Many Requests)를 반환한다.
원인
매우 많은 동시 요청, 매우 크거나 매우 빈번한 bulk 요청, 무거운 aggregation/검색 부하, 부족한 노드/CPU 리소스, 또는 워크로드에 비해 너무 작은 thread pool 큐.
해결 방법
클라이언트 측에서 exponential backoff로 재시도한다. 429는 보통 일시적이다. bulk 배치 크기와 전송 속도를 줄이고 동시성을 낮춘다. 거부된 작업을 모니터링한다: GET _cat/thread_pool?v&h=node_name,name,active,queue,rejected. 지속적인 부하에는 노드/리소스를 추가한다(수평 확장). 큐 크기를 늘리는 것은 최후의 수단이며 근본 원인은 용량이다.
같은 데이터베이스의 다른 항목
- resource_already_exists_exceptionresource_already_exists_exception: index [index_name/uuid] already exists (HTTP 400)
- cluster_health_redcluster health status: RED / unassigned shards (클러스터 상태 RED / 미할당 샤드)
- no_shard_available_action_exceptionno_shard_available_action_exception: No shard available for [...]
- master_not_discovered_exceptionmaster_not_discovered_exception / MasterNotDiscoveredException
- security_exceptionsecurity_exception: unable to authenticate / action [...] is unauthorized for user [...] (HTTP 401/403)
- validation_exceptionvalidation_exception / illegal_argument_exception: Validation Failed: ...
- task_cancelled_exceptiontask_cancelled_exception: Task was cancelled / TaskCancelledException