
RabbitMq学习
文章平均质量分 94
一拳打穿地球o
纵有疾风拔地起,我亦乘风破万里
展开
-
RabbitMq如何保证消息的可靠性,消息的重复消费,消息堆积的问题
例如在开发中,商城订单和库存系统,当我们提交订单时,我们应该去锁定库存,但是由于网络原因,我们提交订单时没有反应,我们又提交了一次,此时减库存的操作执行2次,导致库存数量不对,这就是没有实现幂等。也就是根据业务逻辑来进行判断,我们收到消息然后更改订单状态,此时又收到一样的消息,因为我们查询订单状态为已经支付了,那么我们就不需要在修改状态了,这样就保证了同样的消息不会被消费。(1)我们可以增加消费者的数量,通过水平拓展,增加消费者的数量来提高消息处理能力(只要钱到位,都不是问题,如果没钱就用第四种,嘿嘿)。原创 2024-07-23 17:00:47 · 1160 阅读 · 0 评论 -
RabbitMq的惰性队列(Lazy Queue)、优先级队列(Priority Queue)
RabbitMQ从3.6.0版本开始引入惰性队列,它是一种以惰性模式运行的经典队列。当设置“惰性”队列模式时,经典队列中的消息将尽可能早地移动到磁盘。这些消息只有在消费者请求时才被加载到RAM中。也就是说生产者发送消息到RabbitMq时,这些消息会直接写入到磁盘上,而不是先加载到内存中;当消费者需要消费消息时,RabbitMq会从磁盘上加载这些消息到内存中,然后交给消费者,所以惰性队列只有在消费者实际消费时,才会将消息从磁盘加载到内存中。原创 2024-07-01 14:54:07 · 1875 阅读 · 0 评论 -
SpringBoot简单实现RabbitMq的死信队列
死信队列是一种用于处理无法被正常消费的消息机制,当消息在队列中变成 '死信' 时,RabbitMq会自动将这些消息从新发送到另一个队列,即死信队列。那么在消息队列中,什么情况下会变成 '死信'?原创 2024-06-28 09:57:49 · 1162 阅读 · 0 评论 -
RabbitMq的五大消息模型及Java代码演示
主要介绍RabbitMq的五大消息模型,并通过代码实现各个订阅模型的使用原创 2024-06-27 10:30:09 · 3710 阅读 · 1 评论