Разделите рабочий процесс между удаленными работниками

Мне нужно разработать платформу Java для загрузки и обработки информации из Twitter. Основная идея заключается в том, чтобы иметь централизованный контроллер для генерации задач (в основном идентификатора и ключевых слов) и отправки этих задач удаленным работникам (по одной на компьютер). Мне нужно периодически получать отчет о состоянии, чтобы узнать о состоянии как задачи, так и работника. У меня будет как минимум 60 рабочих (в десять раз больше в ближайшем будущем).

Моей первоначальной идеей было использовать RMI, но мне нужно общаться в обоих направлениях, и я не чувствую себя комфортно с RMI. Другой подход состоял в том, чтобы использовать SSLSockets для отправки сериализованных объектов, но мне пришлось бы контролировать много ошибок и добавлять много кода для мониторинга задач и рабочих. Некоторые люди рассказывали мне об использовании фреймворка, такого как Spring Batch, Gigaspaces или Quartz.

Как вы думаете, будет ли лучший вариант для этого проекта? В настоящее время я прочитал много хороших вещей о Gigaspaces, но я не нашел хорошего учебника о том, как его реализовать, и Quartz кажется многообещающим. Как вы думаете? Стоит ли использовать любой из них?

1 ответ

Решение

Нелегко сказать вам пойти на технологию, основанную на вашем вопросе. GigaSpaces, безусловно, подходит для работы, но также и Spring Batch. Кварц - это только часть планирования вашего вопроса, а не только удаленное взаимодействие и распределение рабочей нагрузки.

GigaSpaces - это полноценная прикладная платформа для сценариев, где важны параллелизм, высокая пропускная способность и масштабируемость. Spring Batch, безусловно, тоже справится с этой задачей, но в отличие от GigaSpaces, это не платформа приложений. Так что вам все равно нужно будет где-то развернуть ваше приложение.

Тем не менее, GigaSpaces - это коммерческий продукт (доступна бесплатная версия), но вам могут помочь и другие платформы, такие как Storm Project ( http://storm-project.net/) и Hazelcast (www.hazelcast.com).,

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

Другие вопросы по тегам