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