module.subscription.1.topic = client/%c
module.subscription.2.topic = user/%u
module.subscription.2.qos = 2
module.subscription.2.nl = 1
module.subscription.2.rap = 1
module.subscription.2.rh = 1
v4.1.0及以上:emqx_ctl modules load emqx_mod_delayed(挂载模块)
v4.0.0:emqx_ctl plugins load emqx_delayed_publish(挂载插件)
延迟发布使用主题前缀 $delayed/{DelayInterval}/{TopicName} ,该功能以主题重写为基础,若使用延迟发布主题前缀,则会将该主题重写,并以指定seconds时间后发布消息至指定的主题。
$delayed: 使用 $delay 作为主题前缀的消息都将被视为需要延迟发布的消息。延迟间隔由下一主题层级中的内容决定。
{DelayInterval}: 指定该 MQTT 消息延迟发布的时间间隔,单位是秒,允许的最大间隔是 4294967 秒。如果 {DelayInterval} 无法被解析为一个整型数字,EMQX 将丢弃该消息,客户端不会收到任何信息。
{TopicName}: MQTT 消息的主题名称。
七、订阅系统主题
系统主题是以$SYS开头的主题,默认只允许本机用户订阅,其他用户需要在配置中配置规则允许订阅。
系统主题介绍可参考官方文档:EMQX文档-系统主题
在etc/acl.conf中配置 {allow, {ipaddr, ""}, pubsub, ["$SYS/#", "#"]}.
若emqx非系统服务部署本地,则需要添加此配置信息允许服务所在主机订阅系统主题。
八、消息大小限制
在etc/emqx.conf中配置zone.external.max_packet_size = 4MB(具体大小根据实际数据而定)
官方文档中指出配置项为mqtt.max_packet_size,经过实测,在版本4.0.0及4.1.0中,需配置zone.external.max_packet_size 而非mqtt.max_packet_size
如果此项配置有错误请指正,谢谢。
九、dashboard配置
dashboard相关配置在plugins/emqx_dashborad.conf中,dashboard以插件形式存在,默认启动
无(默认启动)
使用http://localhost:18083 访问dashboard页面,用户名和密码在配置文件中更改,默认账户为u:admin,p:public。
10、消息保留
在etc/emqx.conf中,修改mqtt.retain_available为true或者false,默认为true,即消息保留。
该功能由插件emqx_retainer配置管理,该插件默认启动,可以调整 EMQ X 储存保留消息的位置,限制接收保留消息数量和 Payload 最大长度,以及调整保留消息的过期时间。
无(默认启动)
服务端收到 Retain 标志为 1 的 PUBLISH 报文时,会将该报文视为保留消息,除了被正常转发以外,保留消息会被存储在服务端,每个主题下只能存在一份保留消息,因此如果已经存在相同主题的保留消息,则该保留消息被替换。当客户端建立订阅时,如果服务端存在主题匹配的保留消息,则这些保留消息将被立即发送给该客户端。
注意:若关闭消息保留机制,则在发布消息时retain参数只能传入false,传入true则会异常并断开连接
建议在客户端中配置使用retain=false字段而非直接关闭消息保留,否则易报异常并断开连接
十、关闭遥测
在data/loaded_plugins 文件,删除 emqx_telemetry. 这一行数据(注意后面有一个 "." 字符),删除后就表示永远不会启用遥测插件。
遥测功能用于向EMQ社区通过http请求上报遥测数据,项目中无需此配置,关掉。
有兴趣的小伙伴可以关注公众号【暴走的怪兽君】,常更新Java干货资讯,免费提供大量教程和工具下载。