错误处理 Apache Kafka 提供商

当信息在 Kafka 中处理有错误时,您可以从 Kafka.

顺序队列中的消息的错误处理

顺序队列不使用错误队列,因为任何时候只有一条消息出错。 出错的消息会阻止队列中该消息之后的消息进行处理。 但是,错误不会阻止新消息添加到队列。 Kafka 中设置的保留时间,在队列中保留已处理和未处理的报文。 Kafka.

Kafka 中,注意 Kafka 保留时间。 例如,如果您将其设置为 48 小时,那么周五晚间就会出现错误信息。 其他消息会在该错误消息之后堆积。 如果在星期一早上之前未管理该错误消息,该错误消息和其他未处理的消息可能会在消息恢复处理之前到期。

错误和过期的报文可在 Kafka 可在 "信息再处理 "应用程序中重新处理。

如果消息在队列中,但未在处理(cron 任务不活动时会发生此情况),消息可能会到期。 由于消息带有错误且未处理,因此它们在“消息重新处理”应用程序中不可用,并且不可恢复。

如果您有不希望重新处理的出错消息,请在“消息重新处理”应用程序中将这些消息标记为删除。

连续队列中报文的错误处理

连续队列中出错的消息会写入队列末尾,以便该消息可重新处理。 出错消息可重新处理的次数由此外部系统的最大重试计数字段的值确定。

要进行连续的入站或出站错误处理,必须为连续队列设置 KAFKAERROR cron 任务实例。 该 cron 任务处理 maxinterror 表中的信息。 Maximo® Application Suite.
注意: 尝试最大重试次数后,错误信息将设置为 HOLD 状态。 KAFKAERROR cron 任务会跳过这条信息,转而处理错误表中的下一条信息。 如果您想修复信息并重试,可使用信息重新处理应用程序编辑信息,并将信息状态更改为 RETRY,以便 KAFKAERROR cron 任务在下一次迭代中处理该信息。 如果不想再处理错误报文,请在报文再处理程序中标记要删除的报文。

连续队列的重新交付延迟的配置

管理员可以配置在为连续队列指定重试计数时生效的重新传递延迟。 如果在 mxe.int.kafkaredeldelay 属性中指定了重新交付延迟,则队列的 cron 任务不会将信息重写到队列的末尾,直到延迟时间结束。 Kafka 直到延迟时间结束。

例如,如果延迟设置为 30 秒,那么连续队列的 cron 任务暂停 30 秒,然后再将发生错误的消息重新写入队列的末尾。 延迟允许处理队列中的其他消息,其中某些消息可能包含成功处理发生错误的消息所需的对象。 使用此机制的缺点是延迟会降低处理器速度,因为其延迟 cron 任务的继续处理。

要实现重新传递延迟,请在“系统属性”应用程序中创建 mxe.int.kafkaredeldelay 属性,并设置延迟时间(以秒为单位)。