![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
rabbitmq
文章平均质量分 81
爪哇_克劳德_武汉
于无声处响惊雷
展开
-
RabbitMQ(四)重复消费/幂等性和有序性
幂等性首先,rabbitMQ并没有为消息的重复消费而设计一种解决方法,这个解决方法需要我们来根据业务自己实现,我整理了几种常见的解决方法。消息重复发送导致消息被重复消费的场景在生产者发送消息给rabbitMQ服务器的时候,有可能因为网络波动等情况,导致生产者收不到rabbitMQ服务器的应答,导致生产者再发送一条消息。也是因为网络波动等问题,导致rabbitMQ服务器在向消费者发送消息的时候,没有收到消费者的应答,重复向消费者发生消息。这两个场景,其实最终都是导致消费者重复消费多次消息原创 2021-10-14 10:08:03 · 381 阅读 · 0 评论 -
RabbitMQ(三)消费端ack机制
ACK机制什么是消息确认ACK如果在处理消息的过程中,消费者的服务器在处理消息的时候出现异常,那么可能这条正在处理的消息就没有完成消息消费,数据就会丢失。为了确保数据不会丢失,RabbitMQ支持消息确定-ACK。ACK的消息确认机制ACK机制是消费者从RabbitMQ收到消息并处理完成后,反馈给RabbitMQ,RabbitMQ收到反馈后才将此消息从队列中删除。如果一个消费者在处理消息出现了网络不稳定、服务器异常等现象,那么就不会有ACK反馈,RabbitMQ会认为这个消息没有正常消费,会将消息原创 2021-10-14 09:52:37 · 820 阅读 · 0 评论 -
RabbitMQ(二)消息可靠投递
可靠投递先来说明一个概念,什么是可靠投递呢?在RabbitMQ中,一个消息从生产者发送到RabbitMQ服务器,需要经历这么几个步骤:生产者准备好需要投递的消息。生产者与RabbitMQ服务器建立连接。生产者发送消息。RabbitMQ服务器接收到消息,并将其路由到指定队列。RabbitMQ服务器发起回调,告知生产者消息发送成功。所谓可靠投递,就是确保消息能够百分百从生产者发送到服务器。为了避免争议,补充说明一下,如果没有设置Mandatory参数,是不需要先路由消息才发起回调的,服务器原创 2021-10-13 15:42:13 · 194 阅读 · 0 评论 -
RabbitMQ(一)使用死信队列实现延迟队列消费
在使用rabbitmq实现延迟消费时,需要先明白什么是死信队列,什么是延迟队列。rabbitmq并没有直接支持延迟队列,延迟队列是通过死信队列来实现的。死信队列DLX(Dead Letter Exchange),死信交换器。当队列中的消息被拒绝、或者过期会变成死信,死信可以被重新发布到另一个交换器,这个交换器就是DLX,与DLX绑定的队列称为死信队列。造成死信的原因:信息被拒绝信息超时超过了队列的最大长度延迟队列延迟队列存储的是延迟消息,延迟消息指的是,当消息被发发布出去之后,并不立即投递原创 2020-12-07 16:11:02 · 694 阅读 · 2 评论