Solución:
Por lo general, diseña aplicaciones MQTT de manera que no tenga suscriptores abrumados. Puede lograr esto distribuyendo la carga a diferentes temas.
Si realmente no puede hacer eso, eche un vistazo a la suscripción compartida enfoque que tienen los corredores MQTT sofisticados como MessageSight y HiveMQ. Esta es exactamente la función que está buscando, pero depende del corredor y no forma parte de la especificación oficial de MQTT.
MQTT es un protocolo Pub / Sub, la base es para una distribución de mensajes de 1 a muchos, no de 1 a 1 (de muchos) que usted describe. Lo que describe se parecería más a un sistema de Message Queue Server que es claramente diferente de Pub / Sub.
Mosquitto como una implementación pura de este protocolo no admite la entrega como usted la describe. Una solución es para nosotros una cola local en el suscriptor a la que se agregan los mensajes entrantes y luego se consumen en un grupo de subprocesos.
Creo que el dispositivo IBM Message Sight puede ofrecer el tipo de entrega de mensajes que está buscando como una extensión del protocolo llamado Suscripciones compartidas, pero con esto habilitado se está desviando de la especificación MQTT pura.
MQTT v5 tiene el soporte de suscripciones compartidas y mosquitto versión 1.6 agregó soporte de MQTT v5.
Ver las notas de la versión
Buen artículo sobre suscripciones compartidas aquí