Si usas Pub/Sub para publicar mensajes que sean muy grandes de datos, puedes usar gRPC para comprimirlos para ahorrar costos de red antes de que tu cliente publicador envíe la solicitud para cada solicitud. La compresión de Pub/Sub para gRPC usa el algoritmo Gzip.
En este documento, se proporciona información para comprimir los mensajes publicados en un tema.
Información acerca de la compresión de mensajes
La relación de compresión para usar la función de compresión del cliente de gRPC es diferente para los diferentes clientes del publicador y depende de los siguientes factores:
Cantidad de datos. La proporción de compresión mejora cuando el tamaño del aumenta de unos cientos de bytes a muchos kilobytes de datos. La configuración del lote de una solicitud de publicación decide la cantidad de datos que se incluye en cada solicitud de publicación. Te recomendamos que actives la configuración por lotes junto con la compresión de gRPC para obtener los mejores resultados.
Tipo de datos. Los datos basados en texto, como JSON o XML, son más comprimibles. y compararlos con datos binarios, como las imágenes.
Si tu cliente publicador está en Google Cloud, puedes usar la métrica Bytes enviados (instance/network/sent_bytes_count
) para medir la capacidad de procesamiento de publicación en bytes. Si el publicador
cliente está en una aplicación diferente, debes usar el
y herramientas específicas del cliente
para realizar las mediciones.
La muestra de código de esta sección muestra un fragmento de código de biblioteca cliente de Java que también incluye compresión de gRPC.
Antes de comenzar
Antes de configurar el flujo de trabajo de publicación, asegúrate de haber completado las siguientes tareas:
- Obtén información sobre los temas y el flujo de trabajo de publicación.
- Crea un tema.
Roles obligatorios
A fin de obtener los permisos necesarios para comprimir mensajes, haz lo siguiente:
solicita a tu administrador que te otorgue el
Rol de IAM de Publicador de Pub/Sub (roles/pubsub.publisher
) en tu tema.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Necesitas permisos adicionales para crear o actualizar temas y suscripciones.
Cómo comprimir un mensaje
C++
Antes de probar esta muestra, sigue las instrucciones de configuración de C++ en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C++.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Java.
¿Qué sigue?
Para obtener información sobre cómo configurar opciones de publicación avanzadas, consulta los siguientes recursos: