Отказоустойчивость в сервисах Ignite

Я развернул сервисы зажигания () (некоторая работа, которая должна выполняться на узлах зажигания) на 4 узлах зажигания. Если один узел выходит из строя и задание находится на полпути к выполнению, я хочу, чтобы другой узел взял на себя это задание и продолжил его выполнение. Как мы можем справиться с этим типом сбоя в случае сервисных сетей? Я читал об аварийном переключении SPI и контрольном SPI, что из этого можно использовать в моем случае? есть ли примеры для того же?

Спасибо.


person rishi007bansod    schedule 02.04.2017    source источник


Ответы (1)


Аварийное переключение, контрольные точки и т. д. являются частями Compute Grid [1]. И насколько я слышал, он гораздо лучше подходит для вашего варианта использования, чем Service Grid.

[1] https://apacheignite.readme.io/docs/compute-grid

person Valentin Kulichenko    schedule 02.04.2017
comment
В моем коде сервисной сетки я уже разделил задачи между работающими узлами зажигания, тогда как вычислительная сетка сообщает, что задача выполняется распределенным образом (разделение и слияние). Но в моем случае я хочу запускать только один и тот же код на всех узлах (нет задачи разделить и объединить). Итак, как я могу использовать вычислительную сетку для запуска одного и того же кода на всех узлах, как и сервисную сетку, если я хочу переместить свой код из службы в вычислительную сетку? - person rishi007bansod; 03.04.2017
comment
Взгляните на IgniteCompute API. Это позволяет выполнять не только полностью заявленные задачи fork-join, но и простые замыкания, такие как runnables и callables. Существует также метод broadcast, который может быть вам полезен. - person Valentin Kulichenko; 04.04.2017