En este documento, se proporciona información sobre el uso del control de simultaneidad con los mensajes publicados en un tema.
El control de simultaneidad te ayuda a anular la cantidad predeterminada de subprocesos en segundo plano (E/S) que usa la biblioteca cliente para publicar mensajes. Esto permite que los clientes publicadores envíen mensajes en paralelo.
El control de simultaneidad es una función disponible en la biblioteca cliente de alto nivel de Pub/Sub . También puedes implementar tu propio control de simultaneidad cuando usas una biblioteca de bajo nivel.
La compatibilidad con el control de simultaneidad depende del lenguaje de programación de la biblioteca cliente. Para implementar lenguajes que sean compatibles con subprocesos paralelos, como C++, Go y Java, las bibliotecas cliente realizan una elección predeterminada para la cantidad de subprocesos.
En esta página, se explica el concepto de control de simultaneidad y cómo configurar la función para tus clientes publicadores. Para configurar tus clientes suscriptores para el control de simultaneidad, consulta Procesa más mensajes con el control de simultaneidad.
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
Para obtener los permisos que
necesitas para publicar mensajes en un tema,
pídele a tu administrador que te otorgue el
rol de IAM 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 a través de roles personalizados o cualquier otro rol predefinido.
Necesitas permisos adicionales para crear o actualizar temas y suscripciones.
Configuraciones de control de simultaneidad
Los valores predeterminados para las variables de control de simultaneidad y los nombres de las variables pueden diferir entre las bibliotecas cliente. Por ejemplo, en la biblioteca cliente de Java, los métodos para configurar el control de simultaneidad son setExecutorProvider() y setChannelProvider(). Para obtener más información, consulta
la
documentación de referencia de la API.
setExecutorProvider() te permite personalizar el proveedor de ejecutores que se usa para procesar las respuestas de publicación. Por ejemplo, puedes cambiar el proveedor de ejecutores por uno que muestre un solo ejecutor compartido con una cantidad limitada de subprocesos en varios clientes publicadores. Esta configuración ayuda a limitar la cantidad de subprocesos creados.
setChannelProvider() te permite personalizar el proveedor de canales que se usa para abrir conexiones a Pub/Sub. Por lo general, no configuras este valor, a menos que quieras usar el mismo canal en varios clientes publicadores. Si se vuelve a usar un canal en demasiados clientes, se pueden producir errores
GOAWAYoENHANCE_YOUR_CALM. Si ves estos errores en los registros de tu aplicación o en Cloud Logging, crea más canales.
Muestras de código para el control de simultaneidad
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++ .
Go
En la siguiente muestra, se usa la versión principal de la biblioteca cliente de Pub/Sub para Go (v2). Si aún usas la biblioteca v1, consulta la guía de migración a la v2. Para ver una lista de muestras de código de la v1, consulta las muestras de código obsoletas.
Antes de probar esta muestra, sigue las instrucciones de configuración de Go 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 Go.
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 .
Ruby
En la siguiente muestra, se usa la biblioteca cliente de Pub/Sub para Ruby v3. Si aún usas la biblioteca v2, consulta la guía de migración a la v3. Para ver una lista de muestras de código de la v2 de Ruby, consulta las muestras de código obsoletas.
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby 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 Ruby.
¿Qué sigue?
Para restringir las ubicaciones en las que Pub/Sub almacena datos de mensajes, consulta Restringe las ubicaciones de recursos de Pub/Sub.
Si quieres obtener más información sobre cómo recibir mensajes, consulta Elige un tipo de suscripción.