
RabbitMQ
文章平均质量分 85
介绍RabbitMQ相关知识
lliuhao--
贵在坚持
展开
-
RabbitMQ 学习顺序
RabbitMQ 学习顺序消息队列介绍RabbitMQ - 安装RabbitMQ - 简单案例RabbitMQ - 发布确认RabbitMQ - 交换机RabbitMQ - 死信队列RabbitMQ - 延迟队列RabbitMQ - 发布确认高级RabbitMQ - 幂等性、优先级、惰性原创 2023-06-09 09:23:35 · 74 阅读 · 0 评论 -
RabbitMQ - 幂等性、优先级、惰性
即使是持久化的消息,在被写入磁盘的同时也会在内存中驻留一份备份。但是,tmall 商家对我们来说,肯定是要分大客户和小客户的对吧,比如像苹果,小米这样大商家一年起码能给我们创造很大的利润,所以理应当然,他们的订单必须得到优先处理,而曾经我们的后端系统是使用 redis 来存放的定时轮询,大家都知道 redis 只能用 List 做一个简简单单的消息队列,并不能实现一个优先级的场景,所以订单量大了后采用 RabbitMQ 进行改造和优化,如果发现是大客户的订单给一个相对比较高的优先级, 否则就是默认优先级。原创 2023-06-09 09:04:11 · 123 阅读 · 0 评论 -
RabbitMQ - 发布确认高级
在生产环境中由于一些不明原因,导致 RabbitMQ 重启,在 RabbitMQ 重启期间生产者消息投递失败, 导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行 RabbitMQ 的消息可靠投递呢?原创 2023-06-09 09:03:31 · 264 阅读 · 0 评论 -
RabbitMQ - 交换机
Fanout 这种类型非常简单。正如从名称中猜到的那样,它是将接收到的所有消息广播到它知道的 所有队列中。系统中默认有些 exchange 类型上一节中的我们的日志系统将所有消息广播给所有消费者,对此我们想做一些改变,例如我们希 望将日志消息写入磁盘的程序仅接收严重错误(errros),而不存储哪些警告(warning)或信息(info)日志 消息避免浪费磁盘空间。原创 2023-06-08 14:08:53 · 813 阅读 · 0 评论 -
RabbitMQ - 延迟队列
延时队列,队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望 在指定时间到了以后或之前取出和处理,简单来说,延时队列就是用来存放需要在指定时间被处理的 元素的队列。1.订单在十分钟之内未支付则自动取消 2.新创建的店铺,如果在十天内都没有上传过商品,则自动发送消息提醒。3.用户注册成功后,如果三天内没有登陆则进行短信提醒。4.用户发起退款,如果三天内没有得到处理则通知相关运营人员。5.预定会议后,需要在预定的时间点前十分钟通知各个与会人员参加会议。原创 2023-06-08 14:10:01 · 753 阅读 · 1 评论 -
RabbitMQ - 死信队列
先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理 解,一般来说,producer 将消息投递到 broker 或者直接到queue 里了,consumer 从 queue 取出消息 进行消费,但某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信,有死信自然就有了死信队列。应用场景:为了保证订单业务的消息数据不丢失,需要使用到 RabbitMQ 的死信队列机制,当消息消费发生异常时,将消息投入死信队列中。原创 2023-06-07 10:42:12 · 614 阅读 · 0 评论 -
RabbitMQ - 发布确认
confirm 模式最大的好处在于他是异步的,一旦发布一条消息,生产者应用程序就可以在等信道返回确认的同时继续发送下一条消息,当消息最终得到确认之后,生产者应用便可以通过回调方法来处理该确认消息,如果RabbitMQ 因为自身内部错误导致消息丢失,就会发送一条 nack 消息, 生产者应用程序同样可以在回调方法中处理该 nack 消息。当然这种方案仍然是同步的,也一样阻塞消息的发布。这是一种简单的确认方式,它是一种同步确认发布的方式,也就是发布一个消息之后只有它被确认发布,后续的消息才能继续发布,原创 2023-06-07 10:42:34 · 375 阅读 · 0 评论 -
RabbitMQ - 简单案例
虽然自动应答传输消息速率是最佳的,但是,在这种情况下已传递但尚未处理的消息的数量也会增加,从而增加了消费者的 RAM 消耗(随机存取存储器)应该小心使用具有无限预处理的自动确认模式或手动确认模式,消费者消费了大量的消息如果没有确认的话,会导致消费者连接节点的 内存消耗变大,所以找到合适的预取值是一个反复试验的过程,不同的负载该值取值也不同 100 到 300 范 围内的值通常可提供最佳的吞吐量,并且不会给消费者带来太大的风险。在这种情况下,突然有个消费者挂掉了,我们将丢失正在处理的消息。原创 2023-06-06 15:36:45 · 373 阅读 · 0 评论 -
RabbitMQ - 安装
RabbitMQ - 安装。原创 2023-06-06 14:48:47 · 409 阅读 · 0 评论 -
消息队列介绍
MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常 见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了 MQ 之后,消息发送上游只需要依赖 MQ,不用依赖其他服务。原创 2023-06-06 14:11:39 · 450 阅读 · 0 评论