本文介绍如何排查数据插入MNS后数据丢失或查询不到的原因。

  • 如果在消息服务MNS控制台和代码里都查询不到刚插入的数据,请按照以下步骤进行排查。
    1. 登录消息服务MNS控制台,找到目标队列,在其右侧操作列选择更多 > 编辑。在编辑队列参数面板,查看以下参数设置的值。
      • 消息可见性超时时间:表示消息隐藏状态的持续时间,超过此参数设定的时间后如果消息未被客户端消费,则消息恢复为可用状态。
      • 消息保存时长:表示消息在本队列中最长的保存时间,超过此参数设定的时间后,不论消息是否被取出,都将被删除。
      • 消息定时时间:表示发送到本队列的所有消息默认将以此参数设定的时间被延后消费。
      说明 如果发送消息时,设置了参数DelaySeconds的值,则消息定时时间以此参数的值为准;如果发送消息时,未设置DelaySeconds的值,则消息定时时间以控制台上设置的参数消息定时时间的值为准。
    2. 队列列表页面,查看可用消息定时中消息列的数字,并计算出可用消息总数和定时中消息总数。
    3. 根据以上两个步骤中获取的参数值,判断队列的配置是否合理。
  • 如果在消息服务MNS控制台可以查到刚插入的数据,但是在代码里查询不到,请检查代码是否有错误或者请核实SDK版本是否为最新版本。