Elige un tipo de suscripción

Este documento le ayudará a elegir el tipo de suscripción de Pub/Sub adecuado para los requisitos de su empresa.

Antes de empezar

Tabla comparativa de suscripciones de Pub/Sub

En la siguiente tabla se ofrecen algunas directrices para elegir el mecanismo de entrega adecuado para tu aplicación:

Funciones admitidas por las suscripciones de Pub/Sub
Caso práctico Suscripción de extracción
  • Gran volumen de mensajes (GBs por segundo).
  • La eficiencia y el rendimiento del procesamiento de mensajes son fundamentales.
  • Entornos en los que no se puede configurar un endpoint HTTPS público con un certificado SSL que no esté autofirmado.
Suscripción push
  • Varios temas que debe procesar el mismo webhook.
  • Suscriptores de App Engine Standard y Cloud Run functions.
  • Entornos en los que no se pueden configurar las dependencias de Google Cloud (como las credenciales y la biblioteca de cliente).
Exportar suscripción
  • Gran volumen de mensajes que puede alcanzar varios millones de mensajes por segundo.
  • Los mensajes se envían directamente a un Google Cloud recurso sin ningún procesamiento adicional.
Endpoints Suscripción de extracción

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

Suscripción push
  • Un servidor HTTPS con un certificado que no sea autofirmado al que se pueda acceder en la Web pública.
  • El endpoint receptor puede estar desacoplado de la suscripción a Pub/Sub, de modo que los mensajes de varias suscripciones se envíen a un solo endpoint.
Exportar suscripción
  • Un conjunto de datos y una tabla de BigQuery para una suscripción de BigQuery.
  • Un segmento de Cloud Storage para una suscripción a Cloud Storage.
Balanceo de carga Suscripción de extracción
  • Varios suscriptores pueden hacer llamadas de extracción a la misma suscripción "compartida".
  • Cada suscriptor recibe un subconjunto de mensajes.
Suscripción push

Los endpoints de envío pueden ser balanceadores de carga.

Exportar suscripción

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

Configuración Suscripción de extracción

No es necesario configurar nada.

Suscripción push
  • No es necesario configurar nada para las aplicaciones de App Engine que estén en el mismo proyecto que el suscriptor.
  • No es necesario verificar los endpoints push en la consola Google Cloud .
  • Se debe poder acceder a los endpoints mediante nombres de DNS y deben tener certificados SSL instalados.
Exportar suscripción
  • Para la suscripción de BigQuery, debe haber un conjunto de datos y una tabla de BigQuery configurados con los permisos adecuados.
  • Debe haber un segmento de Cloud Storage para la suscripción de Cloud Storage, configurado con los permisos adecuados.
Control de flujo Suscripción de extracción

El cliente suscriptor controla la velocidad de entrega. El suscriptor puede modificar dinámicamente el plazo de confirmación, lo que permite que el procesamiento de mensajes sea arbitrariamente largo.

Suscripción push

El servidor de Pub/Sub implementa automáticamente el control de flujo. No es necesario gestionar el flujo de mensajes en el lado del cliente. Sin embargo, es posible indicar que el cliente no puede gestionar la carga de mensajes actual devolviendo un error HTTP.

Exportar suscripción

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

Eficiencia y rendimiento Suscripción de extracción

Consigue un alto rendimiento con un uso reducido de la CPU y del ancho de banda al permitir el envío por lotes, las confirmaciones y el consumo masivo en paralelo. Puede ser ineficiente si se usa un sondeo agresivo para minimizar el tiempo de entrega de los mensajes.

Suscripción push

Envía un mensaje por solicitud y limita el número máximo de mensajes pendientes.

Exportar suscripción

Los servidores de Pub/Sub gestionan la escalabilidad de forma dinámica.

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

Si no tienes una suscripción de exportación, necesitas una suscripción de extracción o de inserción y un suscriptor (como Dataflow) para leer los mensajes y escribirlos en un Google Cloud recurso. No es necesario incurrir en los costes adicionales de ejecutar una tarea de Dataflow cuando los mensajes no requieren un procesamiento adicional antes de almacenarse.

Las suscripciones de exportación tienen las siguientes ventajas:

  • Despliegue sencillo. Puedes configurar una suscripción de exportación mediante un solo flujo de trabajo en la consola, Google Cloud la CLI, la biblioteca de cliente o la API Pub/Sub.

  • Costes bajos. Reduce el coste adicional y la latencia de las canalizaciones de Pub/Sub similares que incluyen tareas de Dataflow. Esta optimización de costes es útil para los sistemas de mensajería que no requieren procesamiento adicional antes del almacenamiento.

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

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

Sin embargo, se recomienda usar una canalización de Dataflow en los sistemas de Pub/Sub en los que se requiera alguna transformación de datos antes de que estos se almacenen en unGoogle Cloud recurso, como una tabla de BigQuery o un segmento de Cloud Storage.

Para saber cómo transmitir datos de Pub/Sub a BigQuery con transformación mediante Dataflow, consulta Transmitir datos de Pub/Sub a BigQuery.

Para saber cómo transmitir datos de Pub/Sub a Cloud Storage con transformación mediante Dataflow, consulta Transmitir mensajes de Pub/Sub mediante Dataflow.

Siguientes pasos

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