26.6. 소비자 오류 처리
kafka 소비자는 kafka 브로커의 메시지를 폴링하는 동안 오류가 발생할 수 있습니다. 이 섹션에서는 어떤 일이 발생하고 구성할 수 있는지에 대해 설명합니다.
소비자는 Kafka poll API를 호출할 때 예외를 throw할 수 있습니다. 예를 들어 유효하지 않은 데이터로 인해 메시지를 역직렬화할 수 없는 경우 및 기타 여러 종류의 오류가 발생합니다. 이러한 오류는 재시도할 수 있거나 그렇지 않은 KafkaException 의 형태로 되어 있습니다. 재시도할 수 있는 예외(RetriableException)는 다시(회용 가능) 다시(에 폴링 시간 초과)됩니다. 다른 모든 예외는 pollOnError 구성에 따라 처리됩니다. 이 구성에는 다음 값이 있습니다.
- DISCARD는 메시지를 삭제하고 다음 메시지를 계속 폴링합니다.
- ERROR_HANDLER는 Camel의 오류 처리기를 사용하여 예외를 처리하며 나중에 다음 메시지를 계속 폴링합니다.
- RECONNECT는 소비자를 다시 연결하고 메시지를 다시 폴링합니다.
- RETRY를 사용하면 소비자가 동일한 메시지를 다시 폴링할 수 있습니다.
- STOP는 소비자를 중지합니다(사용자가 메시지를 다시 사용할 수 있어야 하는 경우 수동으로 시작/재시작해야 함).
기본값은 ERROR_HANDLER 로, Camel의 오류 처리기(설정된 경우)로 인해 발생한 예외를 처리할 수 있습니다. 그런 다음 다음 메시지를 계속 폴링합니다. 이 동작은 Camel 구성 요소에 있는 bridgeErrorHandler 옵션과 유사합니다.
고급 컨트롤의 경우 org.apache.camel.component.kafka.PollExceptionStrategy 의 사용자 지정 구현을 구성 요소 수준에서 구성할 수 있으므로 위의 전략의 원인이 되는 예외를 제어할 수 있습니다.