Какое почтовое хранилище я должен выбрать для нашего веб-приложения; IMAP, хранилище ключей, rdbms,
Я должен хранить сообщения электронной почты для использования с нашим приложением. У меня есть "метаданные" для всех сообщений в реляционной базе данных, но мне неудобно хранить содержимое сообщения (гигабайты и терабайты данных электронной почты) внутри базы данных. В настоящее время я использую IMAP в качестве хранилища, но у меня есть сомнения, если я выберу правильно. Прежде всего, существует проблема недействительности и того, как сохранить постоянную ссылку на сообщение внутри IMAP. Во-вторых, я не уверен, является ли это наиболее надежным решением с точки зрения стратегий резервного копирования / восстановления, повреждения хранилища, репликации... Положительным моментом является то, что я могу запрашивать IMAP с использованием заголовков, поскольку данные в основном индексируются.
Я не знаю, лучше ли подходить к хранилищам ключей (Casandra, Tokyo cabinet, redis). Как они обрабатывают хранение 1КБ и 50МБ данных. Как они предотвращают коррупцию и когда происходит повреждение или сбой устройства, как я могу восстановить магазин.
1 ответ
Как насчет использования файловой системы? Ваши метаданные в базе данных могут указывать на путь к реальному сообщению (одно сообщение на файл).
Если объем вашего сообщения достаточно велик, и вы беспокоитесь о производительности, основанной на количестве файлов на каталог, вы можете разбить вещи на иерархию каталогов уровня 2 (или более) (например, хэшируя идентификатор сообщения).
Использование стандартной файловой системы означает, что вы можете использовать все существующие технологии для ведения журналов, репликации, резервного копирования и т. Д.