短信告警提示离线消息存储数量超过系统限制

问题描述

在使用微消息队列MQTT版时,短信告警提示离线消息存储数量超过系统限制。

问题原因

微消息队列MQTT版对于每个实例中存储的离线消息数量是有限制的。具体的限制值,请参见使用限制中的相关说明。如果客户端订阅关系设置不当,产生大量离线消息,超过实例的规格限制,则系统会发送告警短信并从最早的消息开始清理,直到满足实例的规格限制。

解决方案

目前仅当使用QoS1持久化Session时才会保留离线消息,且最多保留3天,超过时间将自动滚动删除(企业铂金版可定制)。请根据告警短信中的实例ID,确认接入该实例的客户端使用的是QoS1持久化Session级别的订阅关系。确认后,参考如下内容,判断您是否需要使用持久化Session。

说明

注:Client ID、QoS1、cleanSession等概念说明请参见名词解释

  • 持久化Session的订阅关系仅适用于客户端每次上线时Client ID固定,并且客户端上线后需要获取离线期间没有收到消息的场景。

  • 如果客户端每次上线时Client ID都不固定,或者业务上不需要关注离线状态,则不需要使用持久化Session的订阅关系。

确认您是否需要使用持久化Session后,参考如下两种情况进行处理。

  • 需要使用持久化Session:检查客户端是否存在频率离线的情况。如果客户端经常不在线,离线消息将囤积,并在超过限制时被滚动清理。如果您需要增加离线消息存储数量,请联系微消息队列MQTT版技术支持请求增加离线消息存储数量。

  • 不需要使用持久化Session:请改用cleanSession模式,并联系微消息队列MQTT版技术支持请求清理错误的数据。

适用于

  • 微消息队列 MQTT 版

如果您的问题仍未解决,您可以在阿里云社区免费咨询

阿里云首页 消息队列 MQ 相关技术圈