Назад | Перейти на главную страницу

Можно ли синхронизировать файлы между серверами в реальном времени?

У меня около 5 веб-серверов на балансировщике нагрузки, и если пользователь загружает картинку, на ее синхронизацию может уйти до минуты (crontab). Это может расстраивать некоторых людей, считающих, что это не удалось. Есть ли способ выполнить rsync в реальном времени?

Спасибо

Большинство людей проектируют такую ​​систему, используя централизованное хранилище, не требующее никакой синхронизации.

Как сказал Chopper3, существует централизованное хранилище с использованием SAN или NAS, и это кажется наиболее распространенным. Если вы действительно хотите хранить их на отдельных серверах, вы можете посмотреть что-то вроде DRBD, который похож на RAID через Ethernet, чтобы синхронизировать том между серверами.

inosync в значительной степени готов для этого, при условии, что загрузки поступают на машину с Linux (mac и bsd имеют разные механизмы и требуют другой утилиты)

Вы также можете использовать inotify для просмотра каталога и мгновенного запуска распространения изменений файла с помощью scp, rsync или любого другого метода.

Раньше для решения этой проблемы вы использовали общую сетевую файловую систему (каноническую, например, NFS).

Сейчас я использую gridfs MongoDB для этого типа хранилища общих объектов с множественным доступом.

Прямо сейчас мы проводим несколько тестов с inotify. Я тоже рекомендую эти варианты:

уведомить: Библиотека событий файловой системы для Java inotify-java: library предоставляет привязки и API для мониторинга файловой системы на платформах Linux И, конечно же: inosync