¿Por qué tengo un gran retraso de consumidor en mi clúster de Amazon MSK?

4 minutos de lectura
0

Quiero solucionar el retraso del consumidor en mi clúster de Amazon Managed Streaming para Apache Kafka (Amazon MSK).

Resolución

Requisito previo

Ejecute el siguiente comando para usar las métricas de Amazon CloudWatch a fin de determinar el retraso de los consumidores:

./kafka-consumer-groups.sh --bootstrap-server <broker endpoints> --group <groupid> --describe --command-config <properties>

Nota: Reemplazar <broker endpoints> con los puntos de enlace de su corredor, <groupid> con su ID de grupo, y <properties> con sus propiedades. 

Solucionar problemas comunes relacionados con el retraso de los consumidores

Verifique la relación entre el consumidor y la partición: Cada consumidor de un grupo de consumidores lee un subconjunto de particiones en función de los consumidores disponibles en el grupo. Si cada consumidor consume varias particiones, puede procesar grandes cantidades de datos y provocar un retraso.

Siempre que sea posible, mantenga la relación entre el consumidor y la partición cerca de 1:1. Si el retraso persiste, aumente la cantidad de particiones y consumidores.

Identifique el valor atípico: Un valor atípico podría provocar un retraso en el consumidor. Compruebe si una partición de consumidores contribuye significativamente más que las demás del grupo de consumidores. Identifique el origen del problema para aplicar la solución adecuada. Como última opción, reinicie la aplicación.

Compruebe el uso de los recursos en el servidor del consumidor: Supervise los recursos de las aplicaciones para consumidores para ver si hay escasez de recursos. Los consumidores lentos conducen a un procesamiento lento de los mensajes y provocan un retraso en el consumidor.

Compruebe el reequilibrio del grupo de consumidores: Durante el reequilibrio de un grupo de consumidores, se revocan todas las asignaciones de particiones de consumidores. Como resultado, los consumidores dejan de leer sobre el tema y esto aumenta el retraso. Para obtener más información, consulte ¿Cómo puedo solucionar problemas relacionados con el reequilibrio continuo de mi grupo de consumidores?

Evalúe la configuración del consumidor: El retraso del consumidor puede ocurrir cuando el productor escribe más rápido de lo que el consumidor puede leer. Para leer los datos tan pronto como se produzcan, ajuste fetch.min.bytes y fetch.partition.min.bytes en la configuración del consumidor. Las propiedades max.poll.interval.ms y max.poll.records pueden afectar la frecuencia con la que el consumidor compromete su compensación y al número de mensajes que recupera a la vez. Ajuste esta configuración para ayudar a reducir el retraso del consumidor.

Gestione el tamaño del mensaje: Los mensajes de gran tamaño pueden provocar retrasos en los consumidores, especialmente si la aplicación para consumidores procesa los mensajes con lentitud. Aumente la cantidad de instancias de consumidores para gestionar la carga de trabajo.

Revise el diseño de su aplicación: El diseño de su aplicación para consumidores puede repercutir en el retraso de los consumidores. Compruebe si ha diseñado la aplicación para gestionar el volumen de mensajes que está procesando. Amplíe su aplicación u optimice su lógica de procesamiento.

Supervise el uso de recursos de los corredores: Supervise el uso de la CPU en los corredores para comprobar si los corredores están sobrecargados, lo que se traduciría en un aumento del retraso. Para obtener más información sobre la solución de problemas con un uso elevado de la CPU, consulte ¿Cómo puedo solucionar problemas de uso elevado de la CPU en uno o más corredores de un clúster de Amazon MSK?

Optimice el clúster para la carga de trabajo: Compruebe que los corredores de Kafka en su clúster de MSK estén configurados y optimizados para su carga de trabajo. Asegúrese de que las particiones de sus temas estén distribuidas de manera uniforme entre sus corredores. Confirme que su factor de replicación esté configurado correctamente.

Determine la latencia de la red: La alta latencia de red entre un consumidor y el clúster de MSK puede provocar un retraso elevado para el consumidor. Compruebe la conexión de red entre la aplicación de su consumidor y el clúster de MSK. Si la conexión es lenta, entonces acerque su aplicación de consumo a los corredores de Kafka. O bien, optimice la configuración de la red.

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año