Планировщики пружин в среде с балансировкой нагрузки - PullRequest
2 голосов
/ 11 апреля 2010

У меня есть несколько заданий из кварцевого хронона в среде с балансировкой нагрузки. В настоящее время эти задания выполняются на каждом узле, что нежелательно. Я хочу, чтобы узел запускал только определенный планировщик, и, если узел выходит из строя, другой узел должен запустить планировщик, предназначенный для узла, который вышел из строя. Как это можно сделать с помощью пружины 2.5.6 / балансировщик нагрузки Tomcat.

1 Ответ

0 голосов
/ 11 апреля 2010

Я думаю, что у этого вопроса есть несколько аспектов.

Во-первых, в Quartz есть API-методы для приостановки и возобновления работы планировщика или даже отдельных триггеров и заданий

например. http://www.jarvana.com/jarvana/view/opensymphony/quartz/1.6.1/quartz-1.6.1-javadoc.jar!/org/quartz/Scheduler.html#standby()

Я бы создал подпружиненный компонент со ссылкой на планировщик или триггер Quartz и простой логический элемент isMasterNode для хранения состояния. Затем я бы выставил 2 вызова веб-службы [с ограниченным доступом]: makeMaster и makeSlave, которые будут вызывать Scheduler.resume () или standby / pause соответственно.

В конце концов, главный вопрос в том, как и с помощью чего вы определяете, что другой узел «разбился».

Если вы используете аппаратный балансировщик нагрузки для управления этим, вы можете настроить его так, чтобы он вызывал WS 'makeMaster' на новом 'основном' узле, который, в свою очередь, вызывает Scheduler.resume () или аналогичный.

НТН

...