zoukankan      html  css  js  c++  java
  • EMQ X:保留消息

    简介

    服务端收到 Retain 标志为 1 的 PUBLISH 报文时,会将该报文视为保留消息,除了被正常转发以外,保留消息会被存储在服务端,每个主题下只能存在一份保留消息,因此如果已经存在相同主题的保留消息,则该保留消息被替换。

    当客户端建立订阅时,如果服务端存在主题匹配的保留消息,则这些保留消息将被立即发送给该客户端。借助保留消息,新的订阅者能够立即获取最近的状态,而不需要等待无法预期的时间,这在很多场景下非常重要的。

    保留消息配置简介

    配置文件:/etc/eqmx/plugins/emqx_retainer.conf

    配置项 类型 可取值 默认值 说明
    存储类型,retainer.storage_type enum ram, disc, disc_only ram ram:仅储存在内存中; disc:储存在内存和硬盘中; disc_only:仅储存在硬盘中。
    最大保留消息数retainer.max_retained_messages integer >= 0 0 保留消息的最大数量,0 表示没有限制。保留消息数量超出最大值限制后,可以替换已存在的保留消息,但不能为新的主题储存保留消息。
    最大保留消息大小retainer.max_payload_size bytesize 1MB 保留消息的最大 Payload 值。Payload 大小超出最大值后 EMQ X 消息服务器会把收到的保留消息作为普通消息处理。
    有效期限
    retainer.expiry_interval
    duration 保留消息的过期时间,0 表示永不过期。如果 PUBLISH 报文中设置了消息过期间隔,那么以 PUBLISH 报文中的消息过期间隔为准。

    基本使用

    默认情况下,保留消息插件已经开启了

    image-20210728172656967

    下面测试:

    这里勾选了Retain,即设置为保留消息,点击发送

    image-20210728173302546

    另一个订阅了该主题连接上来,立马收到了保留消息,注意到收发消息的时间点也是不同的。

    image-20210728173421852

  • 相关阅读:
    ASP.NET Core: What I learned!
    Entity Framework Core with GraphQL and SQL Server using HotChocolate
    Angular 9 Chart.js with NG2-Charts Demo
    POST调用WCF方法-项目实践
    项目实战-登录速度优化笔记
    MP4视频流base64数据转成Blob对象
    使用Vue+ElementUI实现前端分页
    JS端实现图片、视频时直接下载而不是打开预览
    Dynamic CRM工作流流程实战
    Dynamic CRM插件调试与单元测试
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/15071724.html
Copyright © 2011-2022 走看看