Распределение потоков Java по нескольким серверам?

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

. Я провел небольшое исследование и нашел очереди, и не уверен, что это то, что мне нужно, или есть что-то еще (также я думал, что поддержание целостности / мониторинг рабочих может быть слишком сложным для меня, чтобы писать как новичок). У меня дома 4 компьютера (немного Linux, Mac и Windows ... но я могу установить Linux vm на все системы, отличные от Linux, если эти решения специфичны для ОС), и я хотел попытаться заставить их начать работать над этой задачей. Я думал о создании очередей Java, которые другие клиенты берут и обрабатывают, но я также видел библиотеки (rabbitmq). Я также вкратце рассмотрел грид-вычисления.

Это правильный путь или есть лучший способ? Мне не нужен код или что-то еще, я просто хочу знать, каковы решения для распределения потоков или какие факторы использовать при их оценке.

8
задан Lostsoul 2 March 2012 в 15:01
поделиться