Para publicar un mensaje con Pub/Sub, una aplicación del publicador crea y envía mensajes a un tema.
En este documento, se proporciona una descripción general del flujo de trabajo de publicación, incluido el concepto de temas y mensajes.
Información 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 segmenta para un tema específico. El servicio de Pub/Sub usa este nombre de tema para enrutar el mensaje a todas las suscripciones adjuntas al tema. Si hay varios suscriptores para una suscripción, solo uno de ellos recibe el mensaje.
Los publicadores no tienen que saber cuántos suscriptores existen. Se enfocan en el tema, lo que garantiza la separación de las preocupaciones entre el envío 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 los temas, 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 una fuente de datos 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 servicio escrito de forma personalizada. También debes configurar, implementar, ejecutar, escalar y supervisar este servicio.
A continuación, se incluye una lista de información importante sobre los 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.
Te recomendamos importar temas para transmitir datos. Si estás considerando la transferencia de datos por lotes a BigQuery en lugar de la transferencia de datos de transmisión, puedes probar el 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:
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 la replicación del mejor esfuerzo en una tercera zona adicional. La replicación de Pub/Sub se realiza 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.
Los datos del mensaje: Es el contenido principal del mensaje y puede ser cualquier texto o datos binarios. 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 orden: Es un identificador que representa la entidad para la que se deben ordenar los mensajes. Se espera que los mensajes con la misma clave de ordenamiento se entreguen a un suscriptor en el orden en que se publicaron. Solo se requiere una clave de ordenamiento si deseas que tus mensajes se entreguen en orden. Para obtener más información sobre las claves de orden, consulta Ordena mensajes.
Atributos: Son pares clave-valor opcionales que proporcionan información y contexto adicional sobre el mensaje. Se pueden usar para enrutar, filtrar o enriquecer el contenido de los mensajes. 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 Cómo usar 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 la entrega de mensajes al menos una vez y pedidos que se basan en el mejor esfuerzo a los suscriptores existentes.
Para obtener más información sobre el sistema de Pub/Sub, consulta la descripción general del servicio de Pub/Sub.
Para obtener más información sobre cómo funciona Pub/Sub, consulta Descripción general de la arquitectura de Pub/Sub.