Resumen de suscripciones

Para recibir mensajes publicados en un tema, debes crear una suscripción a ese tema. Los clientes suscriptores solo pueden acceder a los mensajes publicados en el tema después de crear la suscripción. El cliente suscriptor recibe y procesa los mensajes publicados en el tema. Un tema puede tener varias suscripciones, pero una suscripción determinada pertenece a un solo tema.

La función de conservación de temas permite que una suscripción vinculada a un tema pueda retroceder en el tiempo y volver a reproducir los mensajes publicados anteriormente. Puedes consultar más información sobre esta función en el tema Volver a reproducir y eliminar definitivamente mensajes.

Flujo de trabajo de la suscripción

  1. Después de enviar un mensaje a un suscriptor, este debe confirmar que lo ha recibido.

  2. Si se envía un mensaje para que se entregue y un suscriptor aún no lo ha confirmado, se denomina "pendiente".

  3. Pub/Sub intenta repetidamente enviar cualquier mensaje que aún no se haya confirmado. Sin embargo, Pub/Sub intenta no enviar un mensaje pendiente a ningún otro suscriptor de la misma suscripción.

  4. 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 ya no se considerará pendiente y Pub/Sub intentará volver a enviarlo.

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 al servidor de Pub/Sub.

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

  • La opción Exportar suscripciones te permite exportar tus mensajes directamente a unGoogle Cloud recurso. Entre estas suscripciones se incluyen las siguientes:

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

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

Para elegir la suscripción adecuada para tu empresa, consulta Elegir un tipo de suscripción. Puedes actualizar el tipo de envío de mensajes de una suscripción en cualquier momento después de crearla.

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 suscripción. Si los mensajes tienen la misma clave de ordenación y están en la misma región, también puedes habilitar la ordenación de mensajes. Después de definir la propiedad de ordenación de mensajes, el servicio Pub/Sub entrega los mensajes con la misma clave de ordenación y en el orden en el que los recibe.

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

Por lo general, Pub/Sub entrega cada mensaje una vez y en el orden en el que se publicó. Sin embargo, a veces los mensajes pueden entregarse en un orden incorrecto o más de una vez. Pub/Sub puede volver a enviar un mensaje incluso después de que una solicitud de confirmación del mensaje se haya completado correctamente. Esta retransmisión puede deberse a problemas como reinicios del lado del servidor o problemas del lado del cliente. Por lo tanto, aunque es poco habitual, cualquier mensaje se puede volver a enviar en cualquier momento.

Para admitir la entrega más de una vez, es necesario que tu suscriptor sea idempotente al procesar mensajes.

Caducidad de la suscripción

De forma predeterminada, las suscripciones caducan al cabo de 31 días de inactividad del suscriptor o si no se hacen cambios en la suscripción. Algunos ejemplos de actividades de los suscriptores son las conexiones abiertas, las extracciones activas o las inserciones correctas. Si Pub/Sub detecta actividad del suscriptor o una actualización de las propiedades de la 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 la duración de la inactividad o hacer que la suscripción sea permanente independientemente de la actividad. También puedes eliminar una suscripción manualmente.

Aunque puedes crear una suscripción con el mismo nombre que una eliminada, la nueva suscripción no tendrá ninguna relación con la anterior. Aunque la suscripción eliminada tuviera muchos mensajes sin confirmar, una suscripción nueva creada con el mismo nombre no tendría ningún trabajo acumulado (ningún mensaje pendiente de entrega) en el momento de su creación.

Siguientes pasos