У меня есть ситуация, когда мне нужно распределить работу по нескольким процессам JAVA, работающим в разных JVM, возможно, на разных машинах.
Допустим, у меня есть таблица с записями от 1 до 1000. Я ищу работу, которую нужно собрать и распределить в наборах 10. Давайте скажем записи 1-10 для workerOne. Затем записывает 11-20 на рабочий три. И так далее. Само собой разумеется, что workerOne никогда не выполняет работу workerTwo, если и до тех пор, пока workerTwo не может это сделать.
Этот пример был основан исключительно на базе данных, но его можно распространить на любую систему, я думаю, будь то обработка файлов, обработка электронной почты и т. Д.
У меня небольшое ощущение, что немедленным ответом было бы пойти на подход Мастера / Работника. Однако здесь мы говорим о разных JVM. Даже если одна JVM должна выйти из строя, другая JVM должна просто продолжать выполнять свою работу.
Теперь вопрос на миллион долларов будет: есть ли какие-нибудь хорошие рамки (готовые к производству), которые позволили бы мне сделать это? Даже если есть конкретные реализации конкретных потребностей, таких как записи в базе данных, обработка файлов, обработка электронной почты и тому подобное.
Я видел Java Parallel Execution Framework, но не уверен, что его можно использовать для разных JVM, и если один из них выйдет из строя, другой продолжит работу. Я считаю, что работники могут работать на нескольких JVM, но как насчет Master
Дополнительная информация 1: Hadoop будет проблемой из-за требования JDK 1.6. Это слишком много.
Спасибо,
Франклин