Elige un tipo de suscripción

En este documento, encontrarás ayuda para elegir el tipo correcto de suscripción a Pub/Sub adaptado a tus requisitos empresariales.

Antes de comenzar

Tabla de comparación de suscripciones a Pub/Sub

La siguiente tabla ofrece algunas sugerencias con el fin de elegir el mecanismo de entrega adecuado para tu aplicación:

Funciones compatibles con las suscripciones de Pub/Sub
Caso de uso Suscripción de extracción
  • Gran volumen de mensajes (GB por segundo)
  • La eficiencia y la capacidad de procesamiento de mensajes es fundamental.
  • Entornos en los que no es posible configurar un extremo HTTPS público con un certificado SSL no autofirmado
Suscripción push
  • Varios temas que debe procesar el mismo webhook
  • Suscriptores de las funciones de App Engine Standard y Cloud Run
  • Entornos en los que no es posible configurar las dependencias de Google Cloud (como las credenciales y la biblioteca cliente)
Exportar suscripción
  • Gran volumen de mensajes que puede escalar hasta varios millones de mensajes por segundo.
  • Los mensajes se envían directamente a un recurso de Google Cloud sin ningún procesamiento adicional.
Extremos Suscripción de extracción

Cualquier dispositivo conectado a Internet que tenga credenciales autorizadas puede llamar a la API de Pub/Sub.

Suscripción push
  • Un servidor HTTPS con certificado no autofirmado accesible en la Web pública
  • El extremo receptor puede estar desvinculado de la suscripción de Pub/Sub, de modo que los mensajes de varias suscripciones se envíen a un solo extremo.
Exporta una suscripción
  • Un conjunto de datos y una tabla de BigQuery para una suscripción a BigQuery.
  • Un bucket de Cloud Storage para una suscripción a Cloud Storage.
Balanceo de cargas Suscripción de extracción
  • Varios suscriptores pueden realizar llamadas de extracción a la misma suscripción “compartida”.
  • Cada suscriptor recibe un subconjunto de mensajes.
Suscripción de envío

Los extremos de envío pueden ser balanceadores de cargas.

Cómo exportar una suscripción

El servicio de Pub/Sub equilibra automáticamente la carga.

Configuración Suscripción de extracción

No es necesaria la configuración.

Suscripción push
  • No se necesita ninguna configuración para las aplicaciones de App Engine en el mismo proyecto que el suscriptor.
  • No se requiere la verificación de los extremos de envío en la consola de Google Cloud.
  • Los extremos deben ser accesibles a través de nombres DNS y tener certificados SSL instalados.
Exporta una suscripción
  • Debe haber un conjunto de datos y una tabla de BigQuery para la suscripción a BigQuery configurados con los permisos adecuados.
  • Debe existir un bucket de Cloud Storage para la suscripción a Cloud Storage, configurado con los permisos adecuados.
Control de flujo Suscripción de extracción

El cliente suscriptor controla la frecuencia de entrega. El suscriptor puede modificar la fecha límite de confirmación de forma dinámica y permitir que el procesamiento de mensajes sea largo de forma arbitraria.

Suscripción de envío

El servidor de Pub/Sub implementa el control de flujo de forma automática. No es necesario controlar el flujo de mensajes en el lado del cliente. Sin embargo, es posible indicar que el cliente no puede manejar la carga de mensajes actual mediante la transmisión de un error HTTP.

Cómo exportar una suscripción

El servidor de Pub/Sub implementa automáticamente el control de flujo para optimizar la escritura de mensajes en un recurso de Google Cloud.

Eficiencia y capacidad de procesamiento Suscripción de extracción

Logra una capacidad de procesamiento alta con una CPU y un ancho de banda bajos cuando permite la entrega por lotes, las confirmaciones y el consumo masivo paralelo. Si se usan sondeos agresivos para minimizar el tiempo de entrega de mensajes, puede resultar ineficiente.

Suscripción de envío

Envía un mensaje por solicitud y limita la cantidad máxima de mensajes pendientes.

Cómo exportar una suscripción

La escalabilidad se controla de forma dinámica en los servidores de Pub/Sub.

Cuándo usar una suscripción de exportación

Sin una suscripción de exportación, necesitas una suscripción de extracción o de envío y un suscriptor (como Dataflow) para leer mensajes y escribirlos en un recurso de Google Cloud. La sobrecarga de ejecutar un trabajo de Dataflow no es necesaria cuando los mensajes no requieren procesamiento adicional antes de almacenarse.

Las suscripciones de exportación tienen las siguientes ventajas:

  • Implementación sencilla. Puedes configurar una suscripción de exportación a través de un flujo de trabajo único en la consola, Google Cloud CLI, la biblioteca cliente o la API de Pub/Sub.

  • Costos bajos. Reduce el costo y la latencia adicionales de canalizaciones similares de Pub/Sub que incluyen trabajos de Dataflow. Esta optimización de costos es útil para los sistemas de mensajería que no requieren procesamiento adicional antes del almacenamiento.

  • Supervisión mínima. Las suscripciones de exportación forman parte del servicio de Pub/Sub multiusuario y no requieren que ejecutes trabajos de supervisión independientes.

  • Flexibilidad. Una suscripción a BigQuery puede usar el esquema del tema al que está adjunto, que no está disponible con la plantilla básica de Dataflow para escribir desde Pub/Sub a BigQuery. Del mismo modo, una suscripción a Cloud Storage ofrece opciones configurables de lotes de archivos según el tamaño del archivo y el tiempo transcurrido, que no se pueden configurar en la plantilla básica de Dataflow para escribir desde Pub/Sub a Cloud Storage.

Sin embargo, aún se recomienda una canalización de Dataflow para los sistemas de Pub/Sub en los que se requiere alguna transformación de datos antes de que se almacenen en un recurso de Google Cloud, como una tabla de BigQuery o un bucket de Cloud Storage.

Para obtener información sobre cómo transmitir datos de Pub/Sub a BigQuery con transformación mediante Dataflow, consulta Cómo transmitir datos de Pub/Sub a BigQuery.

Si deseas obtener más información para transmitir datos de Pub/Sub a Cloud Storage con transformación mediante Dataflow, consulta Transmite mensajes desde Pub/Sub con Dataflow.

¿Qué sigue?

Comprende el flujo de trabajo de cada tipo de suscripción: