开源rocketmq创建topic时要怎么指定类型为延时消息?[阿里云消息队列MQ]


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

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
1 条回复 A 作者 M 管理员
  1. 在开源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); // 设置延时等级为3producer.send(message);

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

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

  2. 开源是消息里指定的Message DelayLevel。此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”