El control de simultaneidad es una característica 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. En el caso de las implementaciones de lenguajes que admiten subprocesos paralelos (como C++, Go y Java), las bibliotecas cliente establecen una opció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 de suscriptor no mantiene el ritmo del volumen de mensajes entrantes y no está vinculada a la CPU, debes aumentar el recuento de subprocesos. En el caso de las operaciones de procesamiento de mensajes con uso intensivo de CPU, podría ser adecuado reducir la cantidad de subprocesos.
Parámetros de configuración del 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 setSystemExecutorProvider()
, setExecutorProvider()
y setParallelPullCount()
.
setParallelPullCount() te permite decidir cuántas transmisiones abrir. Puedes abrir más transmisiones si tu cliente suscriptor puede manejar más datos de los que se envían en una sola transmisión, que es de 10 Mbps.
setExecutorProvider() te permite personalizar el proveedor ejecutor que se usa para procesar mensajes. Por ejemplo, puedes cambiar el proveedor ejecutor a uno que muestre un solo ejecutor compartido con una cantidad limitada de subprocesos en varios clientes suscriptores. Esta configuración ayuda a limitar la cantidad de subprocesos creados.
setSystemExecutorProvider() te permite personalizar el proveedor ejecutor que se usa para la administración de asignaciones. Por lo general, no se configura este valor, a menos que quieras usar el mismo proveedor de ejecutor en
setExecutorProvider
ysetSystemExecutorProvider
. Por ejemplo, puedes usar el mismo proveedor de ejecutor si tienes varias suscripciones con capacidad de procesamiento baja. Usar el mismo valor limita la cantidad de subprocesos en el cliente.
La cantidad total de subprocesos que se usan para el control de simultaneidad depende del proveedor del ejecutor pasado en la biblioteca cliente y del recuento de extracción en 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.
Rita
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 entrega que puedes configurar para una suscripción:
Maneja las fallas de los mensajes con la política de reintentos de suscripción
Cómo reenviar mensajes no entregados a un tema de mensajes no entregados
Cómo volver a reproducir mensajes confirmados o borrar definitivamente mensajes
Extiende el tiempo de confirmación con la administración de arrendamientos