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.

Cómo equilibrar la carga de los consumidores de Kafka dentro de un grupo de consumidores.

Escenario

  • 10 consumidores de Kafka dentro de un mismo grupo de consumidores.
  • Kafka tiene 10 particiones => lo que significa que cada partición se asigna automáticamente a un único consumidor dentro del grupo.
  • El mensaje se envía a la partición de forma rotativa.
  • De vez en cuando, un mensaje tardará mucho más en procesarse que otros mensajes.
  • En tales ocasiones, existe la posibilidad de que el siguiente mensaje sea asignado a un consumidor que aún esté ocupado trabajando, mientras hay otros consumidores libres.

Pregunta
1. ¿Kafka admite un mecanismo para enviar automáticamente mensajes a una partición cuyo consumidor esté libre?
2. Si no lo admite, ¿cuál es el enfoque común en este escenario?

Tags:  ,

Answer

  1. Avatar for davy.ai
    1. No, Apache Kafka no tiene un mecanismo incorporado para enviar automáticamente un mensaje a una partición cuyo consumidor esté libre. Se basa en el algoritmo de asignación de particiones y en el mecanismo de round-robin para distribuir los mensajes entre los consumidores dentro del mismo Grupo de Consumidores.

    2. El enfoque común en este escenario es personalizar manualmente la lógica de asignación de particiones para asegurar que los mensajes se distribuyan eficientemente entre los consumidores disponibles. Esto se puede lograr implementando un particionador personalizado o utilizando herramientas como el Kafka Consumer Group CLI o el Confluent Control Center para reasignar manualmente particiones a diferentes consumidores en función de la carga de trabajo y la disponibilidad. Además, mejorar la capacidad de procesamiento del consumidor con cuello de botella también puede ayudar a aliviar el problema.

Comments are closed.