Очереди
Введение
Очереди играют ключевую роль в функционировании системы, обеспечивая эффективное управление данными и оптимизацию процессов. Они позволяют реализовать асинхронную обработку входящей почты, что минимизирует задержки и повышает скорость работы системы. В условиях высокой нагрузки, например, во время спам-атак, очереди помогают распределять объем задач, предотвращая перегрузку почтовых серверов и обеспечивая стабильность работы.
Кроме того, очереди повышают устойчивость к сбоям, позволяя системе продолжать функционировать даже в случае возникновения ошибок или нехватки ресурсов (например закончилось место в томе). Они гарантируют сохранность данных, пока проблемы не будут устранены. Очереди также упрощают организацию потоков данных, обеспечивая последовательность обработки сообщений и предотвращая конфликты.
Расположение корневого каталога очередей
В зависимости от операционной системы, расположение корневого каталога очередей по умолчанию:
/var/opt/mailarchiva/ROOT/queue
C:\ProgramData\MailArchiva\ROOT\queue
Структура папок очередей
Внутри корневой папки очередей находятся папки, каждая из которых соответствует определенной очереди. Названия этих папок указывают на тип очереди:
receive
: очередь полученияindex
: очередь индексации
В некоторых случаях очереди группируются по типам соединений:
smtpclient
: очереди клиента SMTPconnection-931f0fc9-e5bc-4d7a-bf72-8190e2bdc18b
: очередь для клиента SMTP с идентификатором931f0fc9-e5bc-4d7a-bf72-8190e2bdc18b
connection-5a5f8a0b-8b0b-4e3e-8c9c-8b0b5a5f8a0b
: очередь для клиента SMTP с идентификатором5a5f8a0b-8b0b-4e3e-8c9c-8b0b5a5f8a0b
Аналогично и для других очередей.
В любом случае папка очереди состоит:
ctl
: база данных очередифайлы
: файлы, которые ждут обработки и записаны в базу данных очереди
Каждая из этих папок используется для хранения данных, связанных с соответствующими процессами обработки в системе. Это упрощает управление и доступ к очередям, а также обеспечивает четкую организацию файлов.
Настройка размеров очередей
Скорость записи исходных данных в очередь, как правило, превышает скорость её обработки (шифрования, сжатия и записи). Поэтому крайне важно правильно настроить размеры очередей. Это поможет предотвратить исчерпание доступного дискового пространства, когда очередь достигает своего максимального размера.
Настройка размера очередей получения (в Настройки | Общие | Архив
) и индексирования (в Настройки | Основной | Индекс
) позволяет ограничить общий объем занимаемого дискового пространства.
Изменение путей очереди
Рекомендуется размещать очереди в отдельном разделе на диске. Это связано с тем, что по умолчанию очереди находятся на том же разделе, что и другие файлы программы. В случае резкого увеличения трафика (например, во время DDoS-атаки или спама) очередь может быстро заполниться. Если место на диске закончится, вся система может оказаться непригодной для использования, так как многие компоненты АРХИВА
, включая запись временных файлов, требуют достаточного свободного пространства.
Основные моменты работы с входящей почтой в АРХИВА
Получение почты: При поступлении входящей почты через SMTP-соединение ей присваивается случайно сгенерированное имя файла с расширением
.blob
, и оно записывается на диск в очередь получения. Имя файла добавляется в базу данных очереди, находящуюся в каталогеctl
.Архивация и индексация: На этом этапе письмо еще не отображается в результатах поиска. Для этого оно должно быть заархивировано и проиндексировано. После успешной архивации (записи в хранилище тома) сообщение помещается в очередь индексации и становится доступным для поиска после успешной обработки. Обработанные файлы из очереди удаляются.
Ресурсы и время обработки: Процессы архивирования и индексации требуют значительных вычислительных ресурсов и времени, что обычно делает их более длительными по сравнению с записью необработанных данных в очередь получения.
Увеличение трафика: При резком увеличении трафика данные могут накапливаться в очередях. Если количество элементов превышает максимальные размеры, сервер будет ожидать освобождения места для нового запроса, и в противном случае отклонит соединение с SMTP кодом повторной попытки
421
или451
.Проблемы с обработкой: В неблагоприятных ситуациях механизм очередей может не справиться с обработкой элементов для архивирования из-за отсутствия настроенного тома или проблем с записью. В таких случаях письма будут накапливаться до заполнения очереди, после чего сервер начнет отклонять входящий трафик.
Как восстановить потерянные элементы очереди
В редких случаях база данных (каталог ctl
), отвечающая за организацию очередей, может повредиться. Это может произойти из-за нехватки места на диске в разделе очереди, внезапного отключения питания или других причин. В результате потерянные элементы могут в паке очереди, но механизм очередей не сможет их обработать, так как не будет о них знать.
Чтобы восстановить потерянные элементы очереди в случае повреждения базы данных, выполните следующие шаги:
Остановите сервер. Убедитесь, что все процессы завершены, чтобы избежать дальнейших проблем.
Переименуйте каталог очереди. Добавьте префикс
restore_
к наименованию каталога очереди. Например, если ваш каталог называетсяreceive
, переименуйте его вrestore_receive
.Запустите сервис. После переименования запустите сервер заново.
После перезапуска архивной системы она автоматически обнаружит сообщения в папке restore_receive
и обработает их, а именно добавит их в очередь получения.