Descripción general de la suscripción

Para recibir mensajes publicados en un tema, debes crear una suscripción a ese en este tema. Solo los mensajes publicados en el tema después de crear la suscripción están disponibles para los clientes suscriptores. El cliente suscriptor recibe y procesa los mensajes publicados en el tema. Un tema puede tener varias suscripciones, pero una suscripción dada pertenece a un solo tema.

La función de retención de temas permite que una suscripción adjunta a un tema realice búsquedas en el tiempo y vuelva a reproducir mensajes publicados anteriormente. Puedes obtener más información sobre la función en el tema Cómo volver a reproducir y borrar definitivamente los mensajes.

Flujo de trabajo de las suscripciones

  1. Después de que se envía un mensaje a un suscriptor, este debe confirmar mensaje.

  2. Si un mensaje se envía para su entrega y un suscriptor aún no lo confirmó el mensaje se denomina pendiente.

  3. Pub/Sub intenta varias veces entregar cualquier mensaje que se haya aún no se ha confirmado. Sin embargo, Pub/Sub intenta no entregar un mensaje pendiente a cualquier otro suscriptor en la misma suscripción.

  4. El suscriptor tiene una cantidad de tiempo limitada y configurable (conocida como ackDeadline) para reconocer el mensaje pendiente. Una vez transcurrido el plazo, el mensaje ya no se considera pendiente, y Pub/Sub intentará volver a entregarlo.

Tipos de suscripciones

Cuando creas una suscripción, debes especificar el tipo de entrega de mensajes. Pub/Sub ofrece los siguientes tipos de suscripciones:

  • Las suscripciones de extracción usan un cliente suscriptor para solicitar mensajes del servidor de Pub/Sub.

  • Las suscripciones de envío usan el servidor Pub/Sub para iniciar solicitudes a tu aplicación de suscriptor para entregar mensajes.

  • La exportación de suscripciones te ayuda a exportar tus mensajes directamente a un recurso de Google Cloud. Estas suscripciones incluyen lo siguiente:

    • Las suscripciones a BigQuery exportan datos a una tabla de BigQuery.

    • Las suscripciones a Cloud Storage exportan datos a un bucket de Cloud Storage.

Para elegir la suscripción correcta según los requisitos de tu empresa, consulta Elige un tipo de suscripción. Puedes actualizar el tipo de entrega de mensajes de una suscripción en cualquier momento después de su creación.

Propiedades de suscripción predeterminadas

De forma predeterminada, Pub/Sub ofrece una entrega al menos una vez sin garantías de orden en todos los tipos de suscripciones. Como alternativa, si los mensajes tienen la misma clave de ordenamiento y están en la misma región, puedes habilitar el ordenamiento de los mensajes. Después de establecer la propiedad de ordenamiento de mensajes, el servicio de Pub/Sub entrega mensajes con la misma clave de ordenamiento y en el orden en que el servicio de Pub/Sub recibe los mensajes.

Pub/Sub también admite la entrega exactamente una vez.

En general, Pub/Sub entrega cada mensaje una vez y en el orden en la que se publicó. Sin embargo, a veces los mensajes se entregan o más de una vez. Pub/Sub puede volver a entregar un mensaje incluso después de que una solicitud de confirmación del mensaje se devuelve correctamente. Esta reenvío puede deberse a problemas como reinicios del servidor o del cliente. Por lo tanto, aunque es poco frecuente, cualquier mensaje se puede volver a entregar en cualquier momento.

Para adaptarse a las entregas más de una vez, tu suscriptor debe estar idempotente cuando se procesan mensajes.

Vencimiento de la suscripción

De forma predeterminada, las suscripciones vencen luego de 31 días de inactividad del suscriptor o si no se realizan actualizaciones en la suscripción. Ejemplos de actividades de los suscriptores incluyen conexiones abiertas, extracciones activas o envíos exitosos. Si Pub/Sub detecta la actividad del suscriptor o una actualización del de suscripción, el reloj de eliminación de la suscripción se reinicia. Con las políticas de vencimiento de la suscripción, puedes configurar el período de inactividad o hacer que la suscripción sea persistente sin importar la actividad. También puedes borrar una suscripción de forma manual.

Aunque puedes crear una suscripción nueva con el mismo nombre de una que se borró, la nueva no tiene relación con la anterior. Aunque los anuncios borrados suscripción tenía muchos mensajes sin confirmar, una nueva suscripción creada con con el mismo nombre no tendrían tareas pendientes (ningún mensaje espera su entrega) en el una vez creado.

¿Qué sigue?