История изменений
Исправление qnikst, (текущая версия) :
ну я написал, как бы я делал, но я не профессионал в zeromq.
+----------+
| client |
+-[REQ]-|--+ [2]
[1] | +---------------+
+------------+ |
| |
+----|----+--^------+
INTERM: | PROXY | |
+----|----+PUB-REP--+
+--------+ [4]| | [5]
+----|---------------+ |
| | +--------------+
+-SUB-REP--REQ---+
| server |
+----------------+
по каналу [2] идёт запрос создать задачу, далее промежуточная нода оповещает все сервера [4], и они скидывают инфу о себе [5] (статистика, кол-во задач, свободная оперативка) на основе этой инфы пользователю даётся ответ куда идёт его задача (это лучше чем стандартный dealer, который тупо делает round-robin)*. Далее по каналу [1] на сервер уходит файл через PROXY на сервер на промежуточной ноде сохраняем номер задачи. клиент может отключаться, когда он закончит, то передаст инфу о выполнение на промежуточную ноду [5].
может быть переусложнено но всё же. Плюс к этому можно добавить сердцебиение для хранения инфы о том, какие ноды живы.
*). если я тут не прав, то меня можно смело поправить.
Исходная версия qnikst, :
ну я написал, как бы я делал, но я не профессионал в zeromq.
+----------+
| client |
+-[REQ]-|--+ [2]
[1] | +---------------+
+------------+ |
| |
+----|----+--^------+
INTERM: | PROXY | |
+----|----+PUB-REP--+
+--------+ | |
+----|---------------+ |
| | +--------------+
+-SUB-REP--REQ---+
| server |
+-----------+
по каналу [2] идёт запрос создать задачу, далее промежуточная нода оповещает все сервера, и они скидывают инфу о себе (статистика, кол-во задач, свободная оперативка) на основе этой инфы пользователю даётся ответ куда идёт его задача (это лучше чем стандартный dealer, который тупо делает round-robin). Далее по каналу [1] на сервер уходит файл через PROXY на сервер на промежуточной ноде сохраняем номер задачи. клиент может отключаться, когда он закончит, то передаст инфу о выполнение на промежуточную ноду.
может быть переусложнено но всё же. Плюс к этому можно добавить сердцебиение для хранения инфы о том, какие ноды живы.