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

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

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

展开
收起
嘟嘟嘟嘟嘟嘟 2023-11-07 13:33:39 77 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
    赞同 展开评论 打赏

多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖多行业。

相关产品

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

    热门文章

    相关电子书

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