LINUX.ORG.RU

История изменений

Исправление 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 на сервер на промежуточной ноде сохраняем номер задачи. клиент может отключаться, когда он закончит, то передаст инфу о выполнение на промежуточную ноду.

может быть переусложнено но всё же. Плюс к этому можно добавить сердцебиение для хранения инфы о том, какие ноды живы.