Descripción general del servicio Pub/Sub

Pub/Sub es un servicio de publicación/suscripción (Pub/Sub), un servicio de mensajería en el que los remitentes de los mensajes están desacoplados de los destinatarios. En un servicio de Pub/Sub hay varios conceptos clave que se explican con la ayuda de la siguiente figura.

En la figura se muestran los diferentes componentes de un servicio Pub/Sub y cómo se conectan entre sí.
Imagen 1: Dos clientes editores envían dos mensajes diferentes a un tema de Pub/Sub común.

Estos son los componentes de un servicio de Pub/Sub:

  • Editor (también llamado productor): crea mensajes y los envía (publica) al servicio de mensajería en un tema específico.

  • Mensaje: los datos que se mueven a través del servicio.

  • Tema: una entidad con nombre que representa un feed de mensajes.

  • Esquema: entidad con nombre que rige el formato de datos de un mensaje de Pub/Sub.

  • Suscripción: entidad con nombre que representa el interés en recibir mensajes sobre un tema concreto.

  • Suscriptor (también llamado consumidor): recibe mensajes en una suscripción específica.

En el siguiente procedimiento se describe el flujo de trabajo del servicio Pub/Sub:

  1. Dos aplicaciones de editores, Editor 1 y Editor 2, envían mensajes a un único tema de Pub/Sub. Editor 1 envía el mensaje A y Editor 2 envía el mensaje B.

  2. El tema está vinculado a dos suscripciones. Estas son Suscripción 1 y Suscripción 2.

  3. El tema también está asociado a un esquema.

  4. Cada suscripción recibe una copia de los mensajes A y B del tema.

  5. Suscripción 1 está conectada a dos aplicaciones de suscriptor: Suscriptor 1 y Suscriptor 2. Las dos aplicaciones de suscriptor reciben un subconjunto de los mensajes del tema. En este ejemplo, Suscriptor 1 recibe el mensaje B, mientras que Suscriptor 2 recibe el mensaje A del tema.

  6. Suscripción 2 solo está conectada a una aplicación de suscriptor llamada Suscriptor 3. Por lo tanto, Suscriptor 3 recibe todos los mensajes del tema.

Tiempo de vida de un mensaje

Supongamos que un solo cliente editor está conectado a un tema. El tema tiene una sola suscripción asociada. Un solo suscriptor está conectado a la suscripción.

Imagen que muestra cómo fluye un mensaje en Pub/Sub.
Imagen 2: Un mensaje fluye de un cliente editor a un cliente suscriptor a través de Pub/Sub.

En los siguientes pasos se describe cómo fluye un mensaje en Pub/Sub:

  1. Una aplicación de editor envía un mensaje a un tema de Pub/Sub.

  2. El mensaje se escribe en el almacenamiento.

  3. Además de escribir el mensaje en el almacenamiento, Pub/Sub lo envía a todas las suscripciones asociadas al tema.

    En este ejemplo, se trata de una sola suscripción.

  4. La suscripción envía el mensaje a una aplicación de suscriptor adjunta.

  5. El suscriptor envía una confirmación a Pub/Sub para indicar que ha procesado el mensaje.

    Una vez que al menos un suscriptor de cada suscripción haya confirmado la recepción del mensaje, Pub/Sub lo eliminará del almacenamiento.

Estado de un mensaje en Pub/Sub

Mientras un mensaje esté pendiente para un suscriptor, Pub/Sub no intentará entregarlo a ningún otro suscriptor de la misma suscripción. El suscriptor tiene un tiempo limitado y configurable, conocido como ackDeadline, para confirmar el mensaje pendiente. Una vez que haya pasado la fecha límite, el mensaje dejará de considerarse pendiente y estará disponible para enviarse de nuevo.