¿Qué son Pub/Sub y Pub/Sub Lite?

Esta página te ayudará a comprender Pub/Sub, por qué las empresas lo requieren y los más ventajas de Pub/Sub en comparación con tecnologías similares. Además, aprende sobre los modelos Conceptos de Pub/Sub que incluyen los términos tema, publicador y suscriptor

Pub/Sub es un servicio de mensajería escalable y asíncrono que separa servicios que producen mensajes de servicios que procesan esos mensajes.

Pub/Sub permite que los servicios se comuniquen de forma asíncrona, con latencias de 100 milisegundos.

Pub/Sub se usa para las canalizaciones de integración de datos y estadísticas de transmisión a fin de transferir y distribuir datos. Es igual de eficaz que middleware orientado a la mensajería para la integración del servicio o como una cola para paralelizar tareas.

Pub/Sub te permite crear sistemas de productores y consumidores de eventos, llamados publicadores y suscriptores. Los publicadores se comunican con los suscriptores de forma asíncrona mediante la transmisión de eventos, en lugar de llamadas de procedimiento remoto (RPC) síncronas.

Los publicadores envían eventos al servicio de Pub/Sub, sin importar el cómo o cuándo se procesarán. Luego, Pub/Sub y entrega eventos a todos los servicios que reaccionan a ellos. En los sistemas de comunicación a través de RPC, los editores deben esperar a que los suscriptores reciban los datos. Sin embargo, la integración asíncrona en Pub/Sub aumenta la flexibilidad y la solidez del sistema en general.

Para comenzar a usar Pub/Sub, consulta la Guía de inicio rápido para usar la consola de Google Cloud. Para obtener una introducción más completa, consulta Compila un sistema de mensajería de Pub/Sub.

Casos de uso habituales

  • Transfiere la interacción del usuario y los eventos del servidor. Para utilizar el usuario eventos de interacción de apps de usuario final o eventos del servidor de tu sistema, puedes reenviarlos a Pub/Sub. Luego, puedes usar un procesador de transmisión como Dataflow, que entrega eventos a las bases de datos. Algunos ejemplos de estas bases de datos son BigQuery, Bigtable y en Google Cloud Storage. Pub/Sub te permite recopilar eventos de muchos clientes a la vez.

  • Distribución de eventos en tiempo real. Se pueden crear eventos, sin procesar o procesados disponibles para varias aplicaciones de tu equipo y organización de forma tiempo de procesamiento. Pub/Sub admite un “bus de eventos empresariales” y basados en eventos. Pub/Sub te permite integrarse en muchos sistemas de Google que exportan eventos a Pub/Sub.

  • Replicar datos entre bases de datos: Pub/Sub es de uso general para distribuir eventos de cambio desde bases de datos. Estos eventos se pueden usar para crear una vista del estado de la base de datos y del historial de estados en BigQuery y otros sistemas de almacenamiento de datos.

  • Procesamiento y flujos de trabajo paralelos: Puedes distribuir de forma eficiente muchas tareas entre varios trabajadores con mensajes de Pub/Sub para conectarse a Cloud Functions. Algunos ejemplos de estas tareas son comprimir texto archivos, enviar notificaciones por correo electrónico, evaluar modelos de IA y reformatear imágenes de contenedores.

  • Bus de eventos empresariales: Puedes crear una canalización de datos en tiempo real para toda la empresa compartir autobús, distribuir eventos de negocios, actualizaciones de bases de datos y análisis eventos en toda tu organización.

  • Transmisión de datos desde aplicaciones, servicios o dispositivos de IoT. Por ejemplo, un La aplicación de SaaS puede publicar un feed de eventos en tiempo real. O un sensor residencial puede transmitir datos a Pub/Sub para usarlos en otros productos de Google Cloud a través de una canalización de Dataflow.

  • Actualización de cachés distribuidas. Por ejemplo, una aplicación puede publicar de invalidación de datos para actualizar los ID de los objetos que cambiaron.

  • Balanceo de cargas para la confiabilidad: Por ejemplo, las instancias de un servicio pueden ser implementadas en Compute Engine en varias zonas, pero que se suscriben a un tema común. Cuando el servicio falla en cualquier zona, los demás pueden recoger la carga automáticamente.

Tipos de servicios de Pub/Sub

Pub/Sub consta de dos servicios:

  • Servicio de Pub/Sub. Este es el servicio de mensajería predeterminado elección para la mayoría de los usuarios y aplicaciones. Ofrece la mayor confiabilidad y conjunto de integraciones más grande, junto con la administración automática de la capacidad. Pub/Sub garantiza la replicación síncrona de todos los datos al al menos dos zonas y la mejor replicación en una tercera zona adicional.

  • Servicio de Pub/Sub Lite. Un mensaje independiente pero similar servicio creado a un menor costo. Ofrece una menor confiabilidad en comparación con Pub/Sub Ofrece almacenamiento zonal o regional de temas. Los temas de Zonal Lite se almacenan en una sola zona. Los temas regionales de Lite replican datos zona de forma asíncrona. Además, Pub/Sub Lite requiere que aprovisiones y administres el almacenamiento y la capacidad de procesamiento. Considera Pub/Sub Lite solo para aplicaciones en las que logres un costo bajo justifica algo de trabajo operativo adicional y reducir confiabilidad.

Para obtener más información sobre las diferencias entre Pub/Sub y Pub/Sub Lite, consulta Elige Pub/Sub o Pub/Sub Lite.

Compara Pub/Sub con otras tecnologías de mensajería

Pub/Sub combina la escalabilidad horizontal Apache Kafka y Pulsar con funciones que se encuentran en el middleware tradicional de mensajería, como Apache ActiveMQ y RabbitMQ. Algunos ejemplos de estas funciones son las colas de mensajes no entregados y el filtrado.

Otra característica que Pub/Sub adopta del middleware de mensajería es paralelismo por mensaje, en lugar de mensajes basados en particiones. “Alquileres” de Pub/Sub mensajes individuales a clientes suscriptores y, luego, rastrea si un mensaje determinado se procesa correctamente.

Por el contrario, otros sistemas de mensajería escalables de forma horizontal usan particiones para el escalamiento horizontal. Esto obliga a los suscriptores a procesar mensajes en cada partición en orden y limita la cantidad de clientes simultáneos a la cantidad de particiones. Procesamiento por mensaje maximiza el paralelismo de las aplicaciones de los suscriptores y ayuda a garantizar independencia del publicador y el suscriptor.

Compara la comunicación de servicio a servicio y de servicio a cliente

Pub/Sub está diseñado para la comunicación de servicio a servicio en lugar de la comunicación con los usuarios finales o los clientes de IoT. Otros patrones son más compatibles con otros productos:

Puedes usar una combinación de estos servicios para compilar patrones de cliente -> servicios -> base de datos. Por ejemplo, consulta el instructivo Transmite mensajes de Pub/Sub a través de WebSockets.

Integraciones

Pub/Sub tiene muchas integraciones con otros productos de Google Cloud para crear un sistema de mensajería con todas las funciones:

  • Integración de datos y procesamiento de transmisión. Es compatible con Dataflow, incluidas las plantillas y SQL de Dataflow, que permiten procesar y integración de datos en BigQuery y data lakes en Cloud Storage. Dataflow plantillas para mover datos de Pub/Sub a Cloud Storage, BigQuery y otros productos están disponibles en las IU de Pub/Sub y Dataflow en la Consola de Google Cloud La integración con Apache Spark, en especial cuando se administra con Dataproc, también está disponible. Composición visual de la integración y de procesamiento de datos que se ejecutan en Spark y Dataproc se pueden lograr con Data Fusion.
  • Supervisión, Alertas y Registro. Con el respaldo de Monitoring y Registro de productos.
  • IAM y autenticación. Pub/Sub se basa en un estándar OAuth que usan otros productos de Google Cloud y admite IAM detallada, lo que habilita el control de acceso para recursos individuales.
  • APIs: Pub/Sub usa gRPC estándar y la API de servicio de REST tecnologías junto con bibliotecas cliente para varios lenguajes.
  • Activadores, notificaciones y webhooks. Pub/Sub ofrece bases de datos de mensajes como solicitudes HTTP POST a webhooks. Puedes implementar la automatización del flujo de trabajo con Cloud Functions y otros productos sin servidores.
  • Organización. Pub/Sub puede integrarse en varios pasos sin servidores Flujos de trabajo declarativamente. La organización analítica y de macrodatos suele realizarse con Cloud Composer, que admite activadores de Pub/Sub También puedes integrar Pub/Sub a Application Integration (Vista previa), que es una Solución de plataforma de integración como servicio (iPaaS). Aplicación La integración proporciona un Activador de Pub/Sub para activar o iniciar integraciones.
  • Integration Connectors.(versión preliminar) Estos connectors te permiten conectarte a varias fuentes de datos. Con los conectores, se exponen los servicios de Google Cloud y las aplicaciones comerciales de terceros a tus integraciones a través de una interfaz estándar y transparente. Para Pub/Sub, puedes crear una conexión de Pub/Sub para usarlos en tus integraciones.

Conceptos básicos

  • Tema. Un recurso con nombre al que los publicadores envían mensajes.
  • Suscripción. Un recurso con nombre que representa el flujo de mensajes desde un único tema específico que se entregará a la aplicación suscrita. Para obtener más detalles sobre la semántica de entrega de mensajes y las suscripciones, consulta la guía para suscriptores
  • Mensaje. Es la combinación de datos y atributos (opcionales) que un que el publicador envía a un tema y, finalmente, se entrega a los suscriptores.
  • Atributo de mensaje. Es un par clave-valor que un publicador puede definir para una mensaje. Por ejemplo, la clave iana.org/language_tag y el valor en se podrían agregar a los mensajes para indicar que un suscriptor de habla inglesa puede leerlo
  • Publicador. Una aplicación que crea y envía mensajes a uno o varios temas.
  • Suscriptor. Una aplicación con una suscripción a uno o varios temas para recibir mensajes de ella
  • Confirmación de recepción (o “confirmación”). Un indicador que envía un suscriptor a Pub/Sub después de recibieron un mensaje correctamente. Los mensajes confirmados se quitan de la cola de mensajes de la suscripción.
  • Envío y extracción. Los dos métodos de entrega de mensajes Un suscriptor recibe mensajes, ya sea porque Pub/Sub los envía al suscriptor en un extremo elegido, o cuando el suscriptor los pulling del servicio.

Las relaciones entre el publicador y el suscriptor pueden ser de uno a varios (fan-out), de varios a uno (fan-in) y de varios a varios, como se muestra en el siguiente diagrama:

Relaciones entre el publicador y el suscriptor

En el siguiente diagrama, se ilustra cómo un mensaje pasa de un publicador a un suscriptor. Para la entrega de envío, la confirmación está implícita en la respuesta a la solicitud de envío, mientras que para la entrega de extracción requiere una RPC independiente.

Ciclo de vida de los mensajes

Próximos pasos