Si usa Pub/Sub para publicar mensajes que suponen una gran cantidad de datos, puede usar gRPC para comprimir sus datos y ahorrar costes de red antes de que su cliente editor envíe la solicitud de publicación. La compresión de Pub/Sub para gRPC usa el algoritmo Gzip.
En este documento se proporciona información sobre la compresión de mensajes publicados en un tema.
Acerca de la compresión de mensajes
La relación de compresión de la función de compresión del lado del cliente de gRPC varía en función de los distintos clientes editores y depende de los siguientes factores:
Cantidad de datos. La relación de compresión mejora cuando el tamaño de la carga útil aumenta de unos cientos de bytes a muchos kilobytes de datos. La configuración de lote de una solicitud de publicación determina la cantidad de datos que se incluye en cada solicitud de publicación. Te recomendamos que actives los ajustes de lote junto con la compresión gRPC para obtener los mejores resultados.
Tipo de datos. Los datos basados en texto, como JSON o XML, se pueden comprimir más que los datos binarios, como las imágenes.
Si tu cliente editor está en Google Cloud, puedes usar la métrica Bytes enviados (instance/network/sent_bytes_count
) para medir el volumen de publicación en bytes. Si tu cliente editor está en otra aplicación, debes usar las herramientas específicas del cliente para hacer la medición.
En el ejemplo de código de esta sección se muestra un fragmento de código de biblioteca de cliente de Java que también incluye la compresión gRPC.
Antes de empezar
Antes de configurar el flujo de trabajo de publicación, asegúrate de que has completado las siguientes tareas:
- Consulta información sobre los temas y el flujo de trabajo de publicación.
- Crea un tema.
Roles obligatorios
Para obtener los permisos que necesitas para comprimir mensajes, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Editor de Pub/Sub (roles/pubsub.publisher
) en tu tema.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Necesitas permisos adicionales para crear o actualizar temas y suscripciones.
Comprimir un mensaje
C++
Antes de probar este ejemplo, sigue las instrucciones de configuración de C++ que se indican en la guía de inicio rápido sobre cómo usar bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API de C++ de Pub/Sub.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración de Java que se indican en la guía de inicio rápido sobre cómo usar bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API de Java de Pub/Sub.
Siguientes pasos
Para saber cómo configurar las opciones de publicación avanzadas, consulta lo siguiente: