Я бы сделал какой-нибудь сервер-диспетчер с хранилищем и очередью обработки (не важно, MQ или что-то самописное с базой). Его задачи:
1. Взаимодействие с клиентами - принимать входные данные и ставить их в очередь на обработку (в ответ выдаём какой-нибудь id), выдавать по переданному id состояние обработки (очередь, в работе, готово, ошибка) и по готовности результат
2. Взаимодействие с серверами-обработчиками - передавать полученные и готовые к старту задания по очереди на запросы готовности сервера к обработке задания, принимать результаты или сообщения об ошибках, мониторить работу серверов (если какой-то сервер слишком долго обрабатывает задание или не передаёт запросы готовности, уведомлять админа, а зависшее задание поставить как стартующее заново, чтобы другой сервер его перехватил).
В принципе можно поставить и несколько диспетчеров так, чтобы сервер-обработчик опрашивал их по очереди (допустим, основной и запасной).