Самая простая точка-многоточечная библиотека / среда распространения данных в Java - PullRequest
2 голосов
/ 23 августа 2010

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

По сути, мне нужно, чтобы это было в конечном итоге непротиворечивым: каждая партия данных должна быть в конечном итоге доставлена ​​на каждый «подчиненный» сервер (надежность), даже если «ведомый» не работал в тот момент, когда партия готова к доставке ( долговечность). Меня не волнует порядок доставки партий.

Возможные решения, которые я рассмотрел,

  • Репликация MySQL не соответствует моим требованиям, поскольку мне пришлось бы реплицировать всю таблицу на каждом сервере.
  • Продукты ETL & ESB слишком раздуты для этого, я не занимаюсь обработкой данных.
  • Простой JMS, я мог бы использовать, но я ищу что-то еще более простое
  • JGroups интересен, но участники, которые покинули группу, не получат сообщения, как только они снова присоединятся.
  • Пересылка файлов и подтверждение файлов между серверами: могу, но я не знаю какой-либо инфраструктуры, поэтому мне нужно написать свою собственную.

Примечание: этот вопрос о том, как перенести данные с центрального сервера на N других с надежностью и долговечностью; а не как его создать или проглотить.

(отредактировано 24 августа для добавления требований к долговечности)

Ответы [ 2 ]

2 голосов
/ 23 августа 2010

Вы можете использовать JGroups для того же. Это инструментарий для надежной многоадресной связи

0 голосов
/ 29 августа 2010

Я закончил тем, что нашел «Spring интеграции», которая включает плагины для опроса каталогов через SFTP, например.http://www.springsource.org/spring-integration

...