Есть задача: отправить разные команды 100 клиентам. После получения команды клиент начинает скачивать файл с сервера. Но если они начнут скачивать одновременно, то сеть будет перегружена и более важные сервисы могут отвалиться. Поэтому хотелось бы сделать так, чтобы одновременно работали только например 10 клиентов.
По этой ссылке примерно то, что я хочу сделать: https://www.rabbitmq.com/blog/2014/02/19/distributed-semaphores-with-rabbitmq/ Но выглядит костыльно и в конце статьи написано, что решение не устойчиво к сбоям сети, а это неприемлемо. Я уже столкнулся с проблемой бесконечной блокировки на самописном сервере(без RabbitMQ).
Подскажите, можно ли подобное сделать на AMQP(конкретно RabbitMQ) или стоит выбрать что-то другое / продолжить писать свой велосипед?