随笔分类 - RabbitMQ
摘要:一、概述 在实际应用场景中,我们推送消息,希望给消息设置优先级,比如说京东双 11 活动,它希望将消息优先推送给京东的 vip,而对于非 vip 用户消息推送的优先级就低一些,那么怎么实现呢? 其实很简单,通过优先级队列就可以完美解决上述应用场景 二、原理图 三、编码 1、applicaiton.y
阅读全文
摘要:一、概述 在实际生产环境中由于一些不明原因,生产者发送的消息在传递到队列的过程中发生消息丢失 1、网络波动,Producer 发送消息的没有到达交换机,消息发生丢失 2、Producer 发送的消息到达了交换机,而交换机发生了故障,没有将消息路由给队列,消息发生丢失 3、Producer 发送的消息
阅读全文
摘要:一、什么是 MQ MQ(message queue),从字面意思上看,本质上是一个队列,遵循先进先出(FIFO),只不过队列中存放的是 message 而已,是一种跨进程的通信机制,用于上下游传递消息,在互联网架构中,MQ 是一种非常常见的上下游 逻辑解耦 + 物理解耦 的消息通信服务,使用了 MQ
阅读全文
摘要:一、延时队列概念 延时队列最重要的特性体现在它的延时属性上,队列内部是有序的,延时队列中的消息是希望在到了指定时间之前或者之后被取出处理的 二、延时队列的应用场景 1、用户下了订单,十分钟之内未进行支付则自动取消订单 2、新创建的店铺,如果在十天之内都没有上架商品,则发送消息进行提醒 3、用户注册账
阅读全文
摘要:一、死信队列 死信,顾名思义就是无法被消费的消息,一般来说 Producer 将消息投递到 broker 或者直接丢到 queue 中,Consumer 从 Queue 中取出消息进行消费,但是某些时候由于特定的原因导致 Queue 中的某些消息无法被消费,这样的消息如果没有后续的处理就变成了死信,
阅读全文
摘要:一、交换机相关概念 1、交换机的作用 RabbitMQ 在传递的消息过程中,生产者和队列之间是没有直接联系的,生产者生产的消息要推送到队列中需要借助于交换机,交换机就是生产者和队列的中间桥梁.交换机的工作内容非常简单,一方面它接收来自生产者的消息,另外一方面是将消息推送到队列中. 2、交换机的类型
阅读全文
摘要:一、概述 消费者处理一个任务是需要一段时间的,如果有一个消费者正在处理一个比较耗时的任务并且只处理了一部分,突然这个时候消费者宕机了,那么会出现什么情况呢? 要回答这个问题,我们先了解一下 RabbitMQ 的消息应答机制 为了保证消息从队列可靠地达到消费者并且被消费者消费处理,RabbitMQ 提
阅读全文
摘要:一、概述 Work queues 该模式下有一个生产者(Producer)、两个消费者(Consumer01、Consumer02),多个消费者一起处理生产者发送过来的消息,消息分发给消费者一般有两种方式,分别是轮询分发(公平分发)、预期值分发(不公平分发) 轮询分发是默认的分发方式,对应的是 pr
阅读全文
摘要:一、概述 RabbitMQ 有很多的使用模式,具体的可以去参考官网,本次我们将简单的搭建一个 Hello World,该模式下只有一个 Producer(生产者)、一个队列(Queue)、一个消费者(Consumer) 二、RabbitMQ 核心工作原理 三、引入对应的依赖 <dependencie
阅读全文