tecnologia kafka aprender apache-kafka kafka-consumer-api

apache-kafka - aprender - kafka server



¿Pueden varios consumidores de Kafka leer el mismo mensaje desde la partición? (2)

Estamos planeando escribir un consumidor Kafka (java) que lee la cola Kafka para realizar una acción que está en el mensaje.

A medida que los consumidores se ejecutan de forma independiente, ¿el mensaje será procesado por un solo consumidor a la vez? De lo contrario, todos los consumidores procesan el mismo mensaje, ya que tienen su propio desplazamiento en la partición.

Por favor ayúdame a entender.


Depende de la identificación del grupo . Supongamos que tienes un tema con 12 particiones. Si tiene 2 consumidores Kafka con el mismo Id. De grupo, ambos leerán 6 particiones, lo que significa que leerán diferentes conjuntos de particiones = diferente conjunto de mensajes. Si tiene 4 cosnumers Kafka con el mismo ID de grupo, cada uno de ellos leerá tres particiones diferentes, etc.

Pero cuando configura un ID de grupo diferente, la situación cambia. Si tiene dos consumidores Kafka con una identificación de grupo diferente, leerán las 12 particiones sin interferencias entre sí. Lo que significa que ambos consumidores leerán exactamente el mismo conjunto de mensajes de forma independiente. Si tiene cuatro consumidores Kafka con una identificación de grupo diferente, todos leerán todas las particiones, etc.


Kafka entregará cada mensaje en los temas suscritos a un proceso en cada grupo de consumidores. Esto se logra equilibrando las particiones entre todos los miembros en el grupo de consumidores para que cada partición se asigne exactamente a un consumidor en el grupo. Conceptualmente, puede pensar en un grupo de consumidores como un único suscriptor lógico que está compuesto por múltiples procesos.

En palabras más simples, el mensaje / registro Kafka se procesa mediante un solo proceso de consumidor por grupo de consumidores. Entonces, si desea que varios consumidores procesen el mensaje / registro, puede usar diferentes grupos para los consumidores.