开发者社区 > 云原生 > 云消息队列 > 正文

RocketMQ广播类的消息会一直堆积?可以设置自动删除吗?怎么设置?什么版本支持?

RocketMQ广播类的消息会一直堆积?可以设置自动删除吗?怎么设置?什么版本支持?

展开
收起
游客6poszk7nfmalm 2023-07-23 22:20:55 406 0
1 条回答
写回答
取消 提交回答
  • 在RocketMQ中,广播类型的消息不会自动删除。广播消息是发送给所有订阅者的消息,因此它们可能会一直堆积在Broker上。然而,你可以通过设置消息的过期时间来实现自动删除。

    从RocketMQ 4.5.0版本开始,支持设置消息的过期时间。你可以在发送消息时通过设置delayTimeLevel参数来指定消息的过期时间。每个delayTimeLevel对应一个固定的延迟时间,例如,delayTimeLevel=3表示延迟10分钟过期。

    以下是设置消息过期时间的步骤:

    1. 在发送消息时,使用Message.setDelayTimeLevel(int delayTimeLevel)方法来设置消息的过期时间。

      Message msg = new Message("Topic", "Tag", "Key", "Body");
      msg.setDelayTimeLevel(3); // 设置延迟时间级别
      producer.send(msg);
      
    2. 配置Broker的messageDelayLevel参数来映射延迟时间级别和具体的延迟时间。这可以在Broker的broker.conf配置文件中进行设置。

      messageDelayLevel=3s,10s,30s,1m,2m,3m,4m,5m,6m,7m,8m,9m,10m,20m,30m,1h,2h
      

      上述配置表示,delayTimeLevel=3对应的延迟时间为10分钟。

    通过设置消息的过期时间,你可以让广播消息在一段时间后自动删除。请注意,设置的过期时间应根据你的业务需求进行调整。

    2023-07-27 23:32:24
    赞同 展开评论 打赏

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载