mq
文章平均质量分 87
旅人mfy
这个作者很懒,什么都没留下…
展开
-
rabbitmq之延时队列(五)
概念延时队列,队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望在指定时间到了以后或之前取出和处理。简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列。延迟队列与死信队列的区别通过之前的篇章,我们知道死信队列其实和普通队列没有什么区别,死信队列就是保存没有被消费者正常消费的消息的一个队列,而延迟队列其实就是利用了消息ttl过期后会加入到死信队列中的特性,从而达到延迟处理的一个机制。(这里保存ttl过期的消息的队列就可以称之为延迟队列)延迟队列使用场景(举5个例原创 2021-09-04 17:09:18 · 471 阅读 · 0 评论 -
rabbitmq优先级队列(八)
优级队列在队列中默认都是先进先出,但每个消息都会伴随一个默认的优先级,如果需要提高某个消息的被处理的优先级,那么就可以通过优级队列来实现。代码实现添加配置文件spring.rabbitmq.host=192.168.136.128spring.rabbitmq.port=5672spring.rabbitmq.username=adminspring.rabbitmq.password=admin引入rabbitmq的依赖<dependency> <groupI原创 2021-09-14 17:17:53 · 314 阅读 · 0 评论 -
rabbitmq之发布确认进阶(七)
概述消息确认基础篇的链接在我的另一篇确认发布基础篇讲了,如何应对队列在发送消息给消费者的过程中出现了问题导致消费者无法消费,那么生产者发送消息给交换机的过程中出现了问题,以及交换机发送消息给队列的过程中出现了问题,应该如何应对?在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败,导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行 RabbitMQ 的消息可靠投递呢? 特别是在这样比较极端的情况,RabbitMQ 集群不可用原创 2021-09-05 23:04:29 · 494 阅读 · 0 评论 -
rabbitmq之基于插件的延时队列(六)
文章目录前言rabbitmq之基于插件的延时队列安装延时队列插件流程图代码演示前言基于死信的延时队列文章链接在上一篇rabbitmq基于死信的延时队列中提到了,通过rabbitmq的消息过期机制实现的延时队列,RabbitMQ 只会检查第一个消息是否过期,如果过期则丢到死信队列,如果第一个消息的延时时长很长,而第二个消息的延时时长很短,第二个消息并不会优先得到执行。rabbitmq之基于插件的延时队列针对这一问题我们就可以通过rabbitmq_delayed_message_exchange插件实原创 2021-09-04 21:10:13 · 326 阅读 · 1 评论 -
rabbitmq之死信队列(四)
概念死信队列,顾名思义就是无法被消费的消息,,某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信,加入到私信队列中。私信的来源消息 TTL 过期队列达到最大长度(队列满了,无法再添加数据到 mq 中)消息被拒绝(basic.reject 或 basic.nack)并且 requeue=false...原创 2021-09-02 11:13:29 · 236 阅读 · 0 评论 -
rabbitmq交换机之fanout丶direct丶Topic(三)
文章目录ExchangesExchanges 的类型绑定fanout模式代码演示direct模式代码演示Topic模式ExchangesRabbitMQ 消息传递模型的核心思想是: 生产者生产的消息从不会直接发送到队列。生产者只能将消息发送到交换机(exchange),交换机工作的就是接收来自生产者的消息,另一方面将它们推入队列。因此交换机必须确切知道如何处理收到的消息。是应该把这些消息放到特定队列还是说把消息推到许多队列中还是说应该丢弃它们,这就的由交换机的类型来决定。Exchanges 的类型总原创 2021-08-31 00:27:37 · 453 阅读 · 0 评论 -
rabbitmq之消息确认(二)
概念确认发布就是用来保证生产者在发送消息到mq的过程中防止消息丢失的一种机制。发送方发消息给接受方一旦接收方接到消息后通知发送方,如果发送方设置了持久化那么接受方会在消息成功持久化后在通知发送方。消息确认的策略消息的确认做有很多法,其中包括单条确认、批量确认、异步确认等。单条确认:它是一种同步确认发布的方式,也就是发布一个消息之后只有它被确认发布,后续的消息才能继续发布,waitForConfirmsOrDie(long)这个方法只有在消息被确认的时候才返回,如果在指定时间范围内这个消息没有被确认原创 2021-08-29 22:10:17 · 572 阅读 · 0 评论 -
rabbitmq之工作队列(一)
文章目录概念1.轮训分发消息1.1代码举例1.2观察结果2.消息应答2.1自动消息应答2.1.1 优缺点2.2手动消息应答2.2.1 优缺点2.2.2 手动消息应答的方法2.2.3 Multiple 的解释2.3消息重新入队列2.4手动消息应答代码测试2.4.1观察结果3.持久化3.1队列持久化3.2消息持久化4.不公平分发5.预取值6.确认发布概念工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台原创 2021-08-29 20:16:05 · 568 阅读 · 0 评论