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.

Modelo Pubsub vs punto a punto en Kafka.

Soy nuevo en Kafka, así que tengo dificultades para entender el modelo pub-sub.
Digamos que tengo un tema con 2 particiones (llamémoslas partición 1, partición 2).

Tengo 3 consumidores donde

El consumidor 1 y el consumidor 2 pertenecen al grupo de consumidores 1 y están ligados a las particiones 1 y 2.

El consumidor 3 pertenece al grupo de consumidores 2 y es el único consumidor de este grupo. Lee de la partición 1.

Digamos que los 3 consumidores leen de la partición 1, que tiene 5 mensajes.

Mis dudas son:

  1. ¿Llegan todos los 5 mensajes de la partición 1 a cada uno de los consumidores, es decir, al consumidor 1 y al consumidor 3? ¿O comparten mensajes uno tras otro, dado que el offset mantenido por Kafka puede no tener idea del consumidor que pertenece al mismo grupo de consumidores o a diferentes grupos de consumidores? ¿Se llama así al patrón pub-sub?

  2. Si quiero tener un patrón punto a punto, todo lo que necesito hacer es poner todos los consumidores en el mismo grupo de consumidores. ¿Es correcto?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en Apache Kafka, puedo explicar el modelo de publicación-suscripción y responder sus preguntas.

    En el modelo de publicación-suscripción, los editores escriben mensajes en temas y los consumidores leen mensajes de temas. Un tema puede tener múltiples particiones para permitir un procesamiento paralelo y un aumento en el rendimiento. Cada partición puede tener una o más instancias de consumidores asignadas a ella.

    Ahora, abordemos sus preguntas:

    1. En su escenario, los 5 mensajes en la partición1 serán distribuidos a ambos consumidores en el grupo de consumidores1 (consumidor1 y consumidor2) en una rotación circular, lo que significa que cada mensaje será entregado a una instancia de consumidor a la vez. El único consumidor en el grupo de consumidores2 (consumidor3) también recibirá los 5 mensajes de la partición1. Esto se debe a que Kafka utiliza la gestión de desplazamiento para rastrear los mensajes leídos por cada instancia de consumidor y se asegura de que todos los mensajes en una partición sean entregados a todos los consumidores activos. Esto es parte del patrón de pub-sub en Kafka.

    2. Para implementar un patrón punto a punto, necesitaría utilizar un modelo de mensajería diferente, como punto a punto o en cola. En Kafka, todos los consumidores en el mismo grupo de consumidores recibirán una copia de cada mensaje de una partición dada, independientemente del número de consumidores en el grupo. Si desea limitar un mensaje a un único consumidor, puede crear un nuevo tema para cada instancia de consumidor (lo cual no se recomienda en la mayoría de los casos).

Comments are closed.