tongchenkeji 发表于:2023-11-7 13:33:390次点击 已关注取消关注 关注 私信 开源rocketmq创建topic时要怎么指定类型为延时消息?[阿里云消息队列MQ] 暂停朗读为您朗读 在用rocketmq 4.x,现在需要把阿里云上建的topic同步到本地,开源rocketmq创建topic时要怎么指定类型为延时消息? 「点点赞赏,手留余香」 赞赏 还没有人赞赏,快来当第一个赞赏的人吧! 海报 消息队列 MQ# RocketMQ973# 云消息队列 MQ1430# 消息中间件1371
小周sirAM 2023-11-28 0:19:41 1 在开源RocketMQ中,您可以使用以下方法指定创建的主题为延时消息类型: 在创建主题时指定类型为延时消息。在创建主题时,需要指定该主题的类型为延时消息。例如,如果您想要创建一个名为“testTopic”的延时消息主题,可以使用以下代码: Admin admin = new Admin("localhost:10911");admin.createTopic("testTopic", "ORDERLY", 8); 这里的“ORDERLY”表示主题的类型为延时消息。 在发送消息时指定延时等级。在发送消息时,可以使用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参数设置为您希望的最大延时等级。
在开源RocketMQ中,您可以使用以下方法指定创建的主题为延时消息类型:
这里的“ORDERLY”表示主题的类型为延时消息。
sendOneway
方法或者sendMessage
方法指定消息的延时等级。例如:这里设置了消息的延时等级为3,表示该消息将在发送后的3秒钟后被投递到消费者的队列中。
请注意,RocketMQ中默认的最大延时等级为18,表示最大延时时间为2分钟。此外,如果您想要在发送消息时指定更大的延时等级,可以修改系统的配置文件
broker.conf
,将maxDelayLevel
参数设置为您希望的最大延时等级。开源是消息里指定的Message DelayLevel。此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”