有关会话session和离线消息问题

环境信息

  • EMQX 版本:4.4.2 开源版
  • 操作系统及版本:CentOS 8.2.2004 x86_64
  • 其他

问题描述

1、是不是客户端会话session过期,客户端就不能收到离线消息了(已测试确实收不到)?那这个session可以设置不过期,有什么影响吗?

2、离线消息、飞行窗口和消息队列都有最大限制,超出的未确认消息怎样推送给客户端?

1.emqx 本身就是基于mqtt协议进行流式处理。本身系统不是存储性质的系统。session这个会话的队列就是短时考虑设备端短期网络不稳定用于该设备的存消息。session都不在了,内存也是就释放了,离线消息也自动释放掉了,企业版可以有借助于第三方存储进行离线消息功能。session无法设置不过期,假如不过期,成千上万的设备端已经不存在了,对于你的系统因session一直存在,消耗的内存也就无法释放。
2.队列满了,消息因没有地方存储就会丢失。提高客户端的消费能力,或者借助于桥接到Kafka等其他存储数据库。