Я планирую написать приложение, которое будет иметь распределенные процессы Worker. Один из них будет Leader, который будет назначать задания другим процессам. Разработать процесс выбора лидера довольно просто: каждый процесс пытается создать эфемерный узел на одном и том же пути. Тот, кому это удается, становится лидером.
Теперь у меня вопрос: как спроектировать процесс равномерного распределения задач? Есть ли какой-нибудь рецепт для этого?
Немного подробнее о настройке среды:
Предположим, есть 10 рабочих машин, каждая запускает процесс, одна из них становится лидером. Задания поступают в очередь, лидер принимает их и назначает рабочему. Рабочий процесс получает уведомление каждый раз, когда поступает задание.