У меня есть таблица в центральной базе данных, к которой постоянно добавляются. Я хочу пакетировать эти добавления каждые пару минут и отправлять их на несколько «подчиненных» серверов. Эти серверы, в свою очередь, обрабатывают эти данные, а затем отбрасывают их (например, распределенное хранилище). Каждому «подчиненному» серверу требуется отдельное подмножество данных, и для этого есть естественный ключ разделения.
По сути, мне нужно, чтобы это было в конечном итоге непротиворечивым: каждая партия данных должна быть в конечном итоге доставлена на каждый «подчиненный» сервер (надежность), даже если «ведомый» не работал в тот момент, когда партия готова к доставке ( долговечность). Меня не волнует порядок доставки партий.
Возможные решения, которые я рассмотрел,
- Репликация MySQL не соответствует моим требованиям, поскольку мне пришлось бы реплицировать всю таблицу на каждом сервере.
- Продукты ETL & ESB слишком раздуты для этого, я не занимаюсь обработкой данных.
- Простой JMS, я мог бы использовать, но я ищу что-то еще более простое
- JGroups интересен, но участники, которые покинули группу, не получат сообщения, как только они снова присоединятся.
- Пересылка файлов и подтверждение файлов между серверами: могу, но я не знаю какой-либо инфраструктуры, поэтому мне нужно написать свою собственную.
Примечание: этот вопрос о том, как перенести данные с центрального сервера на N других с надежностью и долговечностью; а не как его создать или проглотить.
(отредактировано 24 августа для добавления требований к долговечности)