错误处理 Apache Kafka 提供商
当信息在 Kafka 中处理有错误时,您可以从 Kafka.
顺序队列中的消息的错误处理
顺序队列不使用错误队列,因为任何时候只有一条消息出错。 出错的消息会阻止队列中该消息之后的消息进行处理。 但是,错误不会阻止新消息添加到队列。 Kafka 中设置的保留时间,在队列中保留已处理和未处理的报文。 Kafka.
在 Kafka 中,注意 Kafka 保留时间。 例如,如果您将其设置为 48 小时,那么周五晚间就会出现错误信息。 其他消息会在该错误消息之后堆积。 如果在星期一早上之前未管理该错误消息,该错误消息和其他未处理的消息可能会在消息恢复处理之前到期。
错误和过期的报文可在 Kafka 可在 "信息再处理 "应用程序中重新处理。
如果消息在队列中,但未在处理(cron 任务不活动时会发生此情况),消息可能会到期。 由于消息带有错误且未处理,因此它们在“消息重新处理”应用程序中不可用,并且不可恢复。
如果您有不希望重新处理的出错消息,请在“消息重新处理”应用程序中将这些消息标记为删除。
连续队列中报文的错误处理
连续队列中出错的消息会写入队列末尾,以便该消息可重新处理。 出错消息可重新处理的次数由此外部系统的最大重试计数字段的值确定。
连续队列的重新交付延迟的配置
管理员可以配置在为连续队列指定重试计数时生效的重新传递延迟。 如果在 mxe.int.kafkaredeldelay 属性中指定了重新交付延迟,则队列的 cron 任务不会将信息重写到队列的末尾,直到延迟时间结束。 Kafka 直到延迟时间结束。
例如,如果延迟设置为 30 秒,那么连续队列的 cron 任务暂停 30 秒,然后再将发生错误的消息重新写入队列的末尾。 延迟允许处理队列中的其他消息,其中某些消息可能包含成功处理发生错误的消息所需的对象。 使用此机制的缺点是延迟会降低处理器速度,因为其延迟 cron 任务的继续处理。
要实现重新传递延迟,请在“系统属性”应用程序中创建 mxe.int.kafkaredeldelay 属性,并设置延迟时间(以秒为单位)。