En esta página, se describen las propiedades que son comunes a todos los tipos de suscripciones de Pub/Sub. Puedes establecer estas propiedades cuando creas o actualizas una suscripción.
Tiempo de retención de mensajes
La opción Duración de retención de mensajes especifica el tiempo que Pub/Sub retiene mensajes después de la publicación. Después de que transcurre la duración de retención del mensaje, Pub/Sub puede descartar el mensaje independientemente del estado de confirmación del mensaje. Para retener los mensajes confirmados durante el tiempo de retención de mensajes, consulta la página Vuelve a reproducir y descarta mensajes.
Los siguientes son los valores de la opción Duración de la retención de mensajes:
- Valor predeterminado = 7 días
- El valor mínimo es de 10 minutos.
- El valor máximo es de 31 días.
Los mensajes no confirmados pueden deberse a suscripciones inactivas, necesidades de copias de seguridad o procesamiento lento. Si puedes procesar los mensajes en un plazo de 24 horas, no se generarán cargos adicionales. Para evitar cargos nuevos, administra estas situaciones de la siguiente manera:
Suscripciones inactivas Borra las suscripciones inactivas para evitar cargos por retención de mensajes de suscripción.
Almacenamiento en copias de seguridad Si usas la retención de suscripciones como almacenamiento de copias de seguridad, puedes cambiar a otra opción de almacenamiento, como la retención de mensajes de temas o la retención de mensajes reconocidos. La retención de mensajes del tema almacena los mensajes solo una vez a nivel del tema y permanecen disponibles para que todas las suscripciones los consuman cuando sea necesario.
Demoras en el procesamiento Agrega más suscriptores (si es posible) para procesar los mensajes en un día.
Retener mensajes confirmados
Si especificas la Duración de la retención de mensajes, también puedes indicar si deseas conservar los mensajes confirmados.
La opción Retain acknowledged messages te permite conservar los mensajes confirmados durante el período de retención de mensajes especificado. Esta opción hace que las tarifas de almacenamiento de mensajes aumenten. Para obtener más información, consulta los costos de almacenamiento.
Período de vencimiento
La opción Período de vencimiento te permite extender el período de vencimiento de tu suscripción.
Las suscripciones sin actividad del suscriptor ni cambios en las propiedades de la suscripción vencen. Si Pub/Sub detecta actividad de suscriptores o si actualizas alguna de las propiedades de la suscripción, se reiniciará el reloj de eliminación de suscripciones. Entre los ejemplos de actividades del suscriptor, se incluyen las conexiones abiertas, las extracciones activas o las inserciones exitosas.
Si especificas el período de vencimiento, el valor debe ser, al menos, igual que la duración de retención de mensajes especificada en la opción Duración de retención de mensajes.
Los siguientes son los valores para la opción Período de vencimiento:
- El valor predeterminado es de 31 días.
- El valor mínimo es 1 día.
Para evitar que una suscripción venza, establece el período de vencimiento en never expire.
Fecha límite de confirmación
La opción Plazo de confirmación especifica el plazo inicial después del cual se vuelve a enviar un mensaje no confirmado. Puedes extender el plazo de confirmación por mensaje enviando solicitudes posteriores de ModifyAckDeadline.
Los siguientes son los valores para la opción Fecha límite de confirmación:
- Valor predeterminado = 10 segundos
- Valor mínimo = 10 segundos
- El valor máximo es de 600 segundos.
En algunos casos, las bibliotecas cliente de Pub/Sub pueden controlar la frecuencia de entrega y modificar de forma dinámica el plazo de confirmación.
Si lo haces, es posible que el mensaje se vuelva a enviar antes de la fecha límite de confirmación que estableciste. Para anular este comportamiento, usa minDurationPerAckExtension y maxDurationPerAckExtension. Para obtener más información sobre el uso de estos valores, consulta Compatibilidad con la entrega exactamente una vez en las bibliotecas cliente.
Transformaciones de mensaje único (SMT)
Las SMT permiten realizar modificaciones ligeras en los atributos y datos de los mensajes directamente en Pub/Sub. Esta función permite limpiar, filtrar o convertir el formato de los datos antes de que los mensajes se entreguen a un cliente suscriptor.
Para obtener más información, consulta Descripción general de los SMT y Crea una suscripción con SMT.
Filtro de suscripción
Usa la opción Subscription filter para especificar una cadena con una expresión de filtrado. Si una suscripción tiene un filtro, la suscripción solo entrega los mensajes que coinciden con él. El servicio de Pub/Sub confirma automáticamente los mensajes que no coinciden con el filtro.
Puedes filtrar los mensajes según sus atributos, pero no según los datos que contienen.
Si no se especifica, la suscripción no filtra los mensajes y los suscriptores los reciben todos.
Los filtros no se pueden cambiar ni quitar después de aplicarlos.
Cuando recibes mensajes de una suscripción con un filtro, no generas tarifas de salida para los mensajes que Pub/Sub confirma de forma automática. Se cobran tarifas por la entrega de mensajes y el almacenamiento relacionado con las búsquedas para estos mensajes.
Para obtener más información, consulta Cómo filtrar mensajes de una suscripción.
Ordenamiento de mensajes
De forma predeterminada, es posible que Pub/Sub no entregue los mensajes en el orden en que se publican. Si la opción Ordenamiento de mensajes está habilitada para una suscripción, todos los mensajes enviados en la misma región, con la misma clave de ordenamiento, se reciben en el orden en que se publican.
Para que los mensajes se reciban en orden, el publicador debe establecer la clave de ordenamiento. Es posible que los mensajes sin una clave de ordenamiento no se reciban en orden.
Cuando se usa la entrega ordenada, las confirmaciones de recepción de los mensajes posteriores no se procesan hasta que se procesan las de los mensajes anteriores. Para obtener más información, consulta Ordena mensajes.
Tema de mensajes no entregados
Cuando no se puede entregar un mensaje después de una cantidad establecida de intentos de entrega o un suscriptor no puede confirmar el mensaje, Pub/Sub puede volver a publicar el mensaje en un tema de mensajes no entregados configurado.
Si estableces un tema de mensajes no entregados, también puedes especificar la cantidad máxima de intentos de entrega. El valor predeterminado es de 5 intentos de entrega. Puedes establecer la cantidad máxima de intentos en cualquier número entre 5 y 100, inclusive.
Si el tema de mensajes no entregados está en un proyecto diferente al de la suscripción, también debes especificar el ID del proyecto con el tema de mensajes no entregados.
Para obtener más información, consulta Temas de mensajes no entregados.
Política de reintentos
Si vence el plazo de confirmación o un suscriptor responde con una confirmación de recepción negativa, Pub/Sub puede volver a enviar el mensaje. Este intento de reenvío se conoce como la política de reintentos de la suscripción.
De forma predeterminada, la política de reintentos de una suscripción se establece para usar Reintentar de inmediato. Con esta opción, Pub/Sub reenvía el mensaje cuando vence el plazo de confirmación de recepción o un suscriptor responde con una confirmación de recepción negativa.
También puedes establecer el valor en Reintentar después de un retraso de retirada exponencial. En este caso, debes especificar los valores de retirada máximos y mínimos.
A continuación, se incluyen algunas pautas para establecer los valores de retirada máximos y mínimos:
Si estableces el valor máximo para la duración de la retirada, el valor predeterminado para la duración mínima de la retirada es de 10 segundos.
Si estableces el valor mínimo para la duración de retirada, el valor predeterminado para la duración máxima de retirada es de 600 segundos.
La duración de retirada más larga que puedes especificar es de 600 segundos.
Política de reintentos y mensajes por lotes
Si los mensajes están en un lote, Pub/Sub inicia la retirada exponencial cuando ocurre una de las siguientes situaciones:
El suscriptor envía una confirmación negativa para cada mensaje en el lote.
El plazo de confirmación de recepción vence.
Política de reintentos y suscripción push
Si recibes mensajes de una suscripción de envío, Pub/Sub podría volver a entregar mensajes después de la retirada de envío en lugar de la duración de retirada exponencial. Cuando la retirada de envío es más larga que la duración de la retirada exponencial, Pub/Sub vuelve a entregar los mensajes no confirmados después de la retirada de envío.