es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Kafka: Usar múltiples consumidores para reducir el retraso del consumidor no funciona.

Hola, tengo un cluster de Kafka utilizando 3 brokers (instancias EC2)
y hay un tema con 100 particiones.

Quería observar cuántos mensajes por segundo pueden manejar cierto número de consumidores.

Así que he enviado mensajes por [20, 100, 500, 1000, 5000, 10000, 20000, 40000] por segundo.
Y para cada tasa de envío de mensajes utilicé [1, 10, 20, 30, …, 100] consumidores
con cada consumidor trabajando en una sola instancia ec2.

Usé kafka-python para crear productores y consumidores.
Se usó Burrow, Telegraf, InfluxDB, Grafana para observar el lag del consumidor por partición y el lag total del consumidor.

Obtuve el lag total del consumidor de este punto final http.
Punto final de Burrow: /v3/kafka/live/consumer/{consumer-group}/status

El resultado salió como las imágenes.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Observando el rendimiento de mensajes en el clúster Kafka

    Como experto en TI especializado en Apache Kafka, Kafka-consumer-api, Kafka-python y Kafka-burrow, me he involucrado recientemente en la observación del rendimiento de mensajes de un clúster Kafka que consta de 3 brokers (instancias EC2) con un tema que tiene 100 particiones.

    Para determinar la tasa de mensajes por segundo que puede manejar un número determinado de consumidores, envié mensajes a tasas variables, específicamente [20, 100, 500, 1000, 5000, 10000, 20000, 40000] por segundo. Para cada tasa de envío de mensajes, también utilicé [1, 10, 20, 30, …, 100] consumidores, con cada consumidor trabajando en una sola instancia EC2.

    Para hacer esto posible, utilicé Kafka-python para crear productores y consumidores, y utilicé Burrow, Telegraf, InfluxDB y Grafana para monitorear el retraso de los consumidores por partición y el retraso total del consumidor. En particular, obtuve el retraso total del consumidor por partición y el retraso total del consumidor a través del punto final de Burrow /v3/kafka/live/consumer/{consumer-group}/status.

    Los resultados se trazaron en Grafana y se mostró el patrón observado en la gráfica aquí:

    Patrón observado en Grafana

    Además, el retraso máximo del consumidor observado se representó gráficamente de la siguiente manera:

    Resultado del retraso máximo observado

    En general, este enfoque me permitió observar la cantidad de mensajes por segundo que un número determinado de consumidores puede manejar, proporcionando información sobre las capacidades de rendimiento del clúster Kafka en diferentes escenarios.

Comments are closed.