Я изучаю создание распределенного приложения и хотел бы получить несколько советов о том, как лучше всего это сделать.
Моя система будет состоять из веб-приложения центрального управления, в котором будут определены задачи, и нескольких исполнителей задач, которые будут установлены на разных компьютерах для обработки этих задач.
Что мне нужно выяснить, это как распределить задачи по клиентам? Должен ли я просто создать очередь задач, и исполнители задач постоянно опрашивают очередь, чтобы узнать, готова ли новая задача? Каков наилучший способ обеспечить выполнение задачи только одним исполнителем? Как я могу также обеспечить равномерное распределение задач между исполнителями задач, чтобы один из них не обрабатывал нагрузки, а другие обрабатывали только ручные операции?
Единственный другой подход, который я могу придумать, заключается в том, что каждый исполнитель задач устанавливает TCP-соединение с сервером и регистрирует свой интерес, а затем, когда новая задача готова, веб-приложение выбирает исполнитель задачи и переводит задачу на это обработчик задач для обработки?
У кого-нибудь есть другие идеи? указатели? или комментарии?
Большое спасибо
Мэтт