El control de simultaneidad es una función disponible en Pub/Sub biblioteca cliente de alto nivel. También puedes implementar tu propio control de simultaneidad cuando estás usando una biblioteca de bajo nivel.
La compatibilidad con el control de simultaneidad depende del lenguaje de programación de la biblioteca cliente. Para implementaciones de lenguaje que admiten subprocesos paralelos, como C++, Go y Java, las bibliotecas cliente hacen una elección predeterminada para la cantidad de subprocesos.
Es posible que esta opción no sea óptima para tu aplicación. Por ejemplo: si tu aplicación suscriptora no está a la altura del mensaje entrante y no depende de la CPU, debes aumentar el recuento de subprocesos. Para Operaciones de procesamiento de mensajes con uso intensivo de CPU, que reducen la cantidad de subprocesos podría ser adecuado.
Configuración de control de simultaneidad
Los valores predeterminados de 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 setSystemExecutorProvider()
, setExecutorProvider()
y setParallelPullCount()
.
setParallelPullCount() te permite decidir cuántas transmisiones deseas abrir. Puedes abrir más transmisiones si tu cliente suscriptor puede controlar más datos que los que se envían en una sola transmisión, que es de 10 MBps.
setExecutorProvider() te permite personalizar el proveedor del ejecutor que se usa para procesar mensajes. Por ejemplo, puedes cambiar el proveedor de ejecutores a uno que muestre un solo ejecutor compartido con una cantidad limitada de subprocesos en varios clientes de suscriptores. Esta configuración ayuda a limitar la cantidad de subprocesos que se crean.
setSystemExecutorProvider() te permite personalizar el proveedor del ejecutor. usarse para la administración de retención. Por lo general, no configuras este valor, a menos que quieras usar el mismo proveedor de ejecutores en
setExecutorProvider
ysetSystemExecutorProvider
. Por ejemplo, puedes usar el mismo proveedor de ejecutores si tienes varias suscripciones de baja capacidad de procesamiento. El uso del mismo valor limita la cantidad de subprocesos en el cliente.
La cantidad total de subprocesos usados en el control de simultaneidad depende de lo siguiente: el proveedor del ejecutor pasado en la biblioteca cliente y el recuento de extracción paralelo.
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
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
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?
Obtén información sobre las otras opciones de publicación que puedes configurar para una suscripción:
Controla las fallas de los mensajes con la política de reintentos de suscripción
Cómo reenviar mensajes que no se pudieron entregar a un tema de mensajes no entregados
Cómo volver a reproducir mensajes confirmados anteriormente o borrar definitivamente mensajes
Extiende el tiempo de acuse de recibo con la administración de arrendamientos