Очереди
Введение
Очереди играют ключевую роль в функционировании системы, обеспечивая эффективное управление данными и оптимизацию процессов. Они позволяют реализовать асинхронную обработку входящей почты, что минимизирует задержки и повышает скорость работы системы. В условиях высокой нагрузки, например, во время спам-атак, очереди помогают распределять объем задач, предотвращая перегрузку почтовых серверов и обеспечивая стабильность работы.
Кроме того, очереди повышают устойчивость к сбоям, позволяя системе продолжать функционировать даже в случае возникновения ошибок или нехватки ресурсов (например закончилось место в томе). Они гарантируют сохранность данных, пока проблемы не будут устранены. Очереди также упрощают организацию потоков данных, обеспечивая последовательность обработки сообщений и предотвращая конфликты.
Расположение корневого каталога очередей
В зависимости от операционной системы, расположение корневого каталога очередей по умолчанию:
/var/opt/mailarchiva/ROOT/queue
C:\ProgramData\MailArchiva\ROOT\queue
Структура папок очередей
Внутри корневой папки очередей находятся папки, каждая из которых соответствует определенной очереди. Названия этих папок указывают на тип очереди:
receive: очередь полученияindex: очередь индексации
В некоторых случаях очереди группируются по типам соединений:
smtpclient: очереди клиента SMTPconnection-931f0fc9-e5bc-4d7a-bf72-8190e2bdc18b: очередь для клиента SMTP с идентификатором931f0fc9-e5bc-4d7a-bf72-8190e2bdc18bconnection-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 и обработает их, а именно добавит их в очередь получения.