34.6. 消费者错误处理
虽然 kafka 使用者轮询来自 kafka 代理的消息,但可能会出现错误。本节描述了什么情况以及您可以配置的内容。
在调用 Kafka poll
API 时,消费者可能会抛出异常。例如,如果因为无效数据而无法反序列化消息,以及许多其他错误。这些错误采用 KafkaException
的形式,它们可以被重试 或不可 重试。可以重试的例外(RetriableException
)将再次重试(之间有一个轮询超时)。所有其他异常都根据 pollOnError 配置进行处理。此配置具有以下值:
- DISCARD 将丢弃消息并继续轮询下一个消息。
- ERROR_HANDLER 将使用 Camel 的错误处理程序来处理异常,然后继续轮询下一个消息。
- RECONNECT 将重新连接消费者,并尝试再次轮询消息。
- RETRY 将使消费者再次重试轮询相同的消息
- STOP 将停止消费者(如果消费者应该再次消耗消息,则需要手动启动/重新启动)。
默认为 ERROR_HANDLER,它将让 Camel 的错误处理程序(若有配置)处理导致异常。然后继续轮询下一个消息。这个行为与 Camel 组件具有的 bridgeErrorHandler 选项类似。
对于高级控制,可以在组件级别上配置 org.apache.camel.component.kafka.PollExceptionStrategy
的自定义实现,这允许控制上述策略的异常原因。