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