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

开源rocketmq创建topic时要怎么指定类型为延时消息?

830c4b6d608cafae135f152a83acee59.png
在用rocketmq 4.x,现在需要把阿里云上建的topic同步到本地,开源rocketmq创建topic时要怎么指定类型为延时消息?

展开
收起
嘟嘟嘟嘟嘟嘟 2023-11-07 13:33:39 127 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在开源RocketMQ中,您可以使用以下方法指定创建的主题为延时消息类型:

    1. 在创建主题时指定类型为延时消息。在创建主题时,需要指定该主题的类型为延时消息。例如,如果您想要创建一个名为“testTopic”的延时消息主题,可以使用以下代码:
    Admin admin = new Admin("localhost:10911");
    admin.createTopic("testTopic", "ORDERLY", 8);
    

    这里的“ORDERLY”表示主题的类型为延时消息。

    1. 在发送消息时指定延时等级。在发送消息时,可以使用sendOneway方法或者sendMessage方法指定消息的延时等级。例如:
    Message message = new Message("testTopic", "KEY", ("Hello World").getBytes());
    message.setDelayTimeLevel(3); // 设置延时等级为3
    producer.send(message);
    

    这里设置了消息的延时等级为3,表示该消息将在发送后的3秒钟后被投递到消费者的队列中。

    请注意,RocketMQ中默认的最大延时等级为18,表示最大延时时间为2分钟。此外,如果您想要在发送消息时指定更大的延时等级,可以修改系统的配置文件broker.conf,将maxDelayLevel参数设置为您希望的最大延时等级。

    2023-11-07 13:49:29
    赞同 展开评论 打赏
  • 开源是消息里指定的Message DelayLevel。此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2023-11-07 13:39:03
    赞同 展开评论 打赏

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

相关产品

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

    热门文章

    相关电子书

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