美文网首页0.面试技能
rocketmq-延迟消息实现

rocketmq-延迟消息实现

作者: 划水者 | 来源:发表于2018-08-18 17:55 被阅读0次

用过rocketmq的童靴们肯定知道,它的延迟消息的时间不是任意时间片,而是仅支持18个固定的时间段,默认的配置是messageDelayLevel=1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h,分别代表延迟level1-level18,对应的延迟时间可以通过配置修改,下面谈谈具体它是怎么实现的

1 所有的延迟消息到达broker后,会存放到SCHEDULE_TOPIC_XXX的topic下(这个topic比较特殊,对客户端是不可见的,包括使用rocketmq-console,也查不到这个topic)

2 SCHEDULE_TOPIC_XXX这个topic下存在18个队列,每个队列中存放的消息都是同一个延迟级别消息

3 broker端启动了一个timer和timerTask的任务,定时从此topic下拉取数据,如果延迟时间到了,就会把此消息发送到指定的topic下,完成延迟消息

以上就是rocketmq延迟消息的实现步骤,如果大家有兴趣,也可以看看JDK的delayQueue的实现,对标一下

相关文章

  • rocketmq-延迟消息实现

    用过rocketmq的童靴们肯定知道,它的延迟消息的时间不是任意时间片,而是仅支持18个固定的时间段,默认的配置是...

  • RocketMQ-延迟消息

    延迟消息 消息发送到Broker后,要特定的事件才会被Consumer消费。 生产者 默认配置级别

  • rocketMq-延迟消息介绍

    在rocketMq的消息体系中,很重要的一个消息体系是延迟消息,以前需要定时去实现的任务现在有rocketMq自身...

  • spring boot 集成rabbitmq 实现延迟队列

    rabbitmq 实现延迟队列 什么是延迟队列 延迟队列存储的对象肯定是对应的延时消息,所谓”延时消息”是指当消息...

  • 如何在MQ中实现支持任意延迟的消息?

    如何在MQ中实现支持任意延迟的消息? 什么是定时消息和延迟消息? 定时消息:Producer 将消息发送到 MQ ...

  • RabbitMQ延迟消息实现

    配置类 向死信队列添加消息,等待5秒后消息发送给交换机 接收消息

  • RabbitMQ实现延迟消息

    参考链接:https://docs.spring.io/spring-amqp/docs/2.1.5.RELEAS...

  • RabbitMQ实现延迟消费

    RabbitMQ实现延迟消费 rabbitMQ没有能直接设置消息延迟消费的功能; 但是可以用消息超时,加入死信队列...

  • rabbitMQ实现延迟消息队列

    一、延迟消息适应场景 一般延迟队列用于特定事件发生后隔一段时间需要做特定处理的场景,下面举几个常见的栗子 1.电商...

  • RabbitMQ实现消息延迟推送

    1、使用场景 淘宝七天自动确认收货。在我们签收商品后,物流系统会在七天后延时发送一个消息给支付系统,通知支付系统将...

网友评论

    本文标题:rocketmq-延迟消息实现

    本文链接:https://www.haomeiwen.com/subject/ivlmbftx.html