push_stream_store_messages

`push_stream_store_messages` 指令启用对推送流消息的存储,使订阅者能够接收在其离线时发送的消息。

语法push_stream_store_messages on | off;
默认值off
上下文http, server, location, if in location
参数1

说明

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 已适当配置,以容纳存储的消息。

在启用消息存储时监控内存使用情况,尤其是在高负载下,以防止服务器资源耗尽。

发布者和订阅者之间关于消息存储的设置不匹配,可能会导致对消息可用性的混淆。

← 返回所有指令