Para publicar un mensaje con Pub/Sub, una aplicación de publicador crea y envía mensajes a un tema.
En este documento, se brinda una descripción general del flujo de trabajo de publicación, incluidos los como un concepto de temas y mensajes.
Acerca de los temas
Un tema de Pub/Sub es un recurso con nombre que representa un feed de mensajes. Cuando un publicador envía un mensaje, se orienta a un tema específico. El El servicio de Pub/Sub usa este nombre de tema para enrutar el mensaje a todos suscripciones adjuntas al tema. Si hay varios suscriptores para una suscripción, solo uno de ellos recibe el mensaje.
Los editores no necesitan saber cuántos suscriptores existen. Se enfocan sobre el tema, garantizando la separación de inquietudes entre el envío de mensajes y la recepción de mensajes.
Pub/Sub admite dos tipos de temas: un tema estándar y un tema de importación.
Propiedades de un tema
Cuando creas o actualizas un tema, puedes especificar sus propiedades.
Para obtener más información sobre las propiedades de un tema, consulta Propiedades de un tema.
Información acerca de los temas de importación
Un tema de importación permite que Pub/Sub transfiera datos de transmisión desde otra fuente y actúe como la aplicación del publicador que envía los datos al tema. Puedes habilitar la transferencia en un tema con la consola, Google Cloud CLI, las llamadas a REST o las bibliotecas cliente. Como parte de la administración del tema de importación, Google Cloud proporciona la supervisión y la escalamiento de la canalización de transferencia.
Sin un tema de importación, transmitir datos a Pub/Sub desde un conjunto de datos la fuente requiere un servicio adicional. Este servicio adicional extrae datos de la fuente original y los publica en Pub/Sub. El servicio adicional puede ser un motor de transmisión como Apache Spark o un con un servicio de escritura personalizada. También debes configurar, implementar, ejecutar, escalar y supervisar este servicio.
La siguiente es una lista de información importante sobre temas de importación:
Al igual que con un tema estándar, puedes publicar manualmente en un tema de importación.
Solo puedes adjuntar una sola fuente de transferencia a un tema de importación.
Recomendamos importar temas para los datos de transmisión. Si estás considerando transferencia de datos por lotes a BigQuery en lugar de transmitir transferencia de datos, puedes intentar Servicio de transferencia de datos de BigQuery (BQ DTS). Si deseas transferir datos a Cloud Storage, el Servicio de transferencia de almacenamiento (STS) es una buena opción.
Pub/Sub admite las siguientes fuentes para temas de importación: Amazon Kinesis Data Streams
Replicación de datos en un tema
Un tema de Pub/Sub usa tres zonas para almacenar datos. El servicio admite la replicación síncrona en al menos dos zonas, y las la replicación a una tercera zona adicional. La replicación de Pub/Sub es dentro de una sola región.
Acerca de los mensajes
Un mensaje de Pub/Sub son los datos que se mueven a través del servicio.
Un mensaje consiste en campos con los datos y los metadatos del mensaje. Se debe especificar una de las siguientes opciones en un mensaje.
Datos del mensaje: Es el contenido principal del mensaje y se puede cualquier dato de texto o binario. Representa la información real que deseas comunicar entre publicadores y suscriptores. Si usas la API de REST directamente, los datos de los mensajes deben estar codificados en base64. Consulta el ejemplo en la pestaña REST de la sección Publicar mensajes.
Una clave de ordenamiento: Esta es una identificador que representa la entidad para la que se deben ordenar los mensajes. Se espera que se entreguen los mensajes con la misma clave de ordenamiento un suscriptor en el orden en que fueron publicados. Solo se requiere una clave de ordenamiento si deseas que tus mensajes se entreguen en orden. Para obtener más información sobre cómo solicitar claves, consulta Mensaje de pedido.
Atributos: Son pares clave-valor opcionales que proporcionan información y contexto adicionales sobre el mensaje. Se pueden usar para el enrutamiento, filtrar o enriquecer el contenido del mensaje. Por ejemplo, puedes agregar atributos como marcas de tiempo o IDs de transacción. Para obtener más información sobre los atributos que se usan en la publicación de mensajes, consulta Usa atributos para publicar un mensaje.
El servicio Pub/Sub agrega los siguientes campos al mensaje:
- Un ID de mensaje único para el tema
- Una marca de tiempo del momento en que el servicio de Pub/Sub recibe el mensaje
Por ejemplo, este es un formato de mensaje en JSON:
{
"data": "This is the core message content.",
"attributes": {
"category": "notification",
"user_id": "12345",
"priority": "medium"
},
"orderingKey": "12345"
}
Flujo de trabajo de publicación de mensajes
Para publicar un mensaje con Pub/Sub, una aplicación de publicador crea y envía mensajes a un tema.
- Creación de un mensaje que contenga tus datos
- Selecciona los atributos de publicación opcionales.
- Envío de una solicitud al servidor de Pub/Sub para publicar el mensaje en un tema especificado.
El servicio de Pub/Sub recibe el mensaje y lo procesa de la siguiente manera:
El mensaje se almacena para su distribución.
El mensaje se replica en varias zonas para brindar durabilidad y alta disponibilidad.
Pub/Sub identifica a los suscriptores con suscripciones que coinciden con el tema del mensaje y les entrega una copia del mensaje a cada uno.
Pub/Sub ofrece al menos una entrega de mensajes y el mejor esfuerzo para entregar suscriptores existentes.
Para obtener una descripción general del sistema de Pub/Sub, consulta Descripción general del servicio de Pub/Sub.
Para obtener una explicación sobre el funcionamiento de Pub/Sub, consulta Descripción general de la arquitectura de Pub/Sub.