Распределенное приложение Java - передача сообщений - PullRequest
0 голосов
/ 24 марта 2012

В настоящее время я работаю над проектом колледжа, в котором мы создаем экстрактор контента для Всемирной паутины.Для этого на данный момент у нас есть 2 модуля: веб-сканер и индексатор, которые будут работать на 2 отдельных машинах.Мы планируем добавить больше модулей по мере нашей работы, но сейчас нам нужны некоторые средства связи между двумя, некоторая форма передачи сообщений.

То, в чем мы не уверены, это следующее:

(i) Мы считаем, что нашему приложению не требуется синхронная передача сообщений.По сути, модуль сканера сканирует веб-страницы и вызывает модуль индексатора при посещении определенной страницы.Так что нам стоит пойти дальше и выбрать какой-нибудь асинхронный протокол (например, JMS) или есть какое-то преимущество в использовании вместо этого синхронного протокола?

(ii) В настоящее время мы думаем об использовании JMS, возможно, с буферами протокола Google для передачинеобходимые данные (URL) между двумя компьютерами.Это будет уместно, или есть какие-то лучшие варианты?

Нашими основными критериями для подходящего протокола будут масштабируемость, а затем скорость.

Это первый раз, когда любой из нас работает надраспределенное приложение любого вида.Поэтому любая помощь будет наиболее ценной:)

Спасибо:)

1 Ответ

1 голос
/ 24 марта 2012

Несколько лет назад я действительно работал над подобной системой, когда веб-сканер искал вредоносные сайты для добавления в список сайтов, занесенных в черный список (это была компания по обеспечению безопасности).

Наши сканеры работалинезависимо от рабочих.Это позволило повысить масштабируемость и производительность.

Сканеры помещают данные в БД.Затем задание будет запускаться через равные промежутки времени и получать необработанные записи (я думаю, что у нас был столбец состояния), а затем передаваться рабочим потокам для параллельной обработки.

Если бы я делал это сегодня, я быиспользуйте базу данных nosql, такую ​​как mongodb и некоторый алгоритм уменьшения карты.

надеюсь, что это полезно.

Rakesh

...