Error al procesar con un proveedor de Apache Kafka
Cuando los mensajes tienen errores durante el proceso en Kafka, puede volver a procesarlos o marcarlos para suprimirlos después de que caduquen de Kafka.
Error al procesar mensajes en colas secuenciales
Las colas secuenciales no utilizan una cola de errores porque solo hay un mensaje de error a la vez. Un mensaje de error evita que se procesen los mensajes detrás del mismo en la cola. Sin embargo, un error no evita que se añadan mensajes nuevo a la cola. Kafka retiene los mensajes procesados y no procesados en la cola, basándose en el tiempo de retención establecido en Kafka.
En Kafka, preste atención al tiempo de retención de Kafka . Por ejemplo, si lo establece en 48 horas, un mensaje va en error a última hora del viernes por la noche. Otros mensajes se amontonan detrás del mensaje de error. Si el mensaje de error no se gestiona hasta el lunes por la mañana, el mensaje de error y otros mensajes no procesados podrían caducar antes de que los mensajes reanudan el proceso.
Los mensajes erróneos y caducados en Kafka se pueden volver a procesar en la aplicación Nuevo proceso de mensajes.
Si los mensajes están en la cola pero no se están procesando, que sucede si la tarea cron no está activa, los mensajes pueden caducar. Puesto que los mensajes no se han procesado con un error, no están disponibles en la aplicación Nuevo proceso de mensajes y no se pueden recuperar.
Si tiene mensajes de error que no tiene intención de volver a procesar, marque los mensajes para su supresión en la aplicación Nuevo proceso de mensajes.
Error al procesar mensajes en colas continuas
Un mensaje que tiene un error en una cola continua se escribe al final de cola para que se pueda volver a procesar. El número de veces que se puede volver a procesar un mensaje con error se determina mediante el valor del campo Número máximo de reintentos para este sistema externo.
Configuración de un retardo de reentrega para colas continuas
Un administrador puede configurar un retardo de reentrega que está en vigor cuando se especifica un recuento de reintentos para una cola continua. Cuando se especifica un retardo de reentrega en la propiedad mxe.int.kafkaredeldelay , la tarea cron para la cola no reescribe un mensaje al final de la cola Kafka hasta después del tiempo de retardo.
Por ejemplo, si el retardo está establecido en 30 segundos, la tarea cron para la cola continua hace una pausa de 30 segundos antes de que vuelva a escribir el mensaje con errores al final de la cola. El retardo permite que otros mensajes se procesen en la cola, algunos de los cuales pueden contener objetos necesarios para procesar correctamente el mensaje que tenía errores. La desventaja de utilizar este mecanismo es que el retardo ralentiza el procesador porque retarda la tarea cron del proceso continuado.
Para implementar un retardo de reentrega, cree la propiedad mxe.int.kafkaredeldelay en la aplicación Propiedades del sistema y establezca un tiempo de retardo en segundos.