push_stream_store_messages
Директива `push_stream_store_messages` обеспечивает сохранение сообщений для push-потоков, позволяя подписчикам получать сообщения, отправленные, когда они были офлайн.
Описание
Директива push_stream_store_messages является неотъемлемой частью NGINX Push Stream Module, поскольку определяет, будут ли сообщения, опубликованные в канале, сохраняться для последующего извлечения подписчиками. Когда функция включена, она повышает устойчивость связи, гарантируя, что подписчики смогут получить ранее отправленные сообщения, если они подключатся после их рассылки. Директива принимает один аргумент, который может быть установлен в 'on' или 'off'. При установке в 'on' это позволяет серверу кэшировать сообщения в памяти или в выделенной области разделяемой памяти, поддерживая пользовательские приложения, которым может потребоваться передача данных в реальном времени, при этом обеспечивая сохранность сообщений.
Эта директива обычно настраивается в контексте http, server или location, в зависимости от требуемого объёма хранения сообщений. Эффективное использование разделяемой памяти требует настройки необходимого объёма разделяемой памяти для обработки объёма сообщений, что можно реализовать с помощью директивы push_stream_shared_memory_size. Важно учитывать последствия использования памяти в зависимости от ожидаемой нагрузки и требований к хранению сообщений. Кроме того, после сохранения они подчиняются настройкам жизненного цикла, задаваемым директивой push_stream_message_ttl, которая указывает, как долго (в секундах) сообщения должны оставаться доступными для получения после публикации.
Пример конфига
http {
push_stream_shared_memory_size 32M;
server {
location /pub {
push_stream_publisher admin;
push_stream_store_messages on;
}
location ~ /sub/(.*) {
push_stream_subscriber;
push_stream_store_messages on;
}
}
}Убедитесь, что push_stream_shared_memory_size правильно настроен, чтобы вмещать сохраняемые сообщения.
Отслеживайте использование памяти при включении хранения сообщений, особенно при большой нагрузке, чтобы предотвратить исчерпание ресурсов сервера.
Несоответствие настроек между издателями и подписчиками относительно хранения сообщений может привести к путанице относительно доступности сообщений.