![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
rabbitMQ消息中间件
文章平均质量分 73
奔跑-lhs
这个作者很懒,什么都没留下…
展开
-
简单快速的理解rabbitMQ并学会使用
目录一、从思想上理解rabbitMQ的运转过程二、知悉RabbitMQ运转过程中的组成一、从思想上理解rabbitMQ的运转过程很多时候,人都是自带无知属性,时不时暴露一下;就像rabbitMQ,你不能只知道它是干什么用的,就觉得自己懂它了!!!首先,先按照下图理解rabbitMQ的运转过程,以及动作的意义上图流程中动作的意义:一、生产者:指定“交换器”,就相当于进超市前去“储物区域”存放东西,设置路由规则就是“投放规则”,就是筛选给哪些储物柜(队列)里都放东西.原创 2021-11-20 15:41:34 · 1202 阅读 · 0 评论 -
rabbitMQ如何避免重复消费
一、为什么会出现消息重复?消息重复的原因有两个:1.生产时消息重复,2.消费时消息重复。1.1 生产时消息重复由于生产者发送消息给MQ,在MQ确认的时候出现了网络波动,生产者没有收到确认,实际上MQ已经接收到了消息。这时候生产者就会重新发送一遍这条消息。生产者中如果消息未被确认,或确认失败,我们可以使用定时任务+(redis/db)来进行消息重试1.2消费时消息重复消费者消费成功后,再给MQ确认的时候出现了网络波动,MQ没有接收到确认,为了保证消息被消费,MQ就会继续给消费者投递之前的.原创 2020-10-30 15:28:25 · 5338 阅读 · 0 评论 -
RabbitMQ应答模式(自动、手动)
RabbitMQ的消息应答为了确保消息不会丢失,RabbitMQ支持消息应答。消费者发送一个消息应答,告诉RabbitMQ这个消息已经接收并且处理完毕了。RabbitMQ就可以删除它了。如果一个消费者挂掉却没有发送应答,RabbitMQ会理解为这个消息没有处理完全,然后交给另一个消费者去重新处理。这样,你就可以确认即使消费者偶尔挂掉也不会丢失任何消息了。没有任何消息超时限制;只有当消费者挂掉时,RabbitMQ才会重新投递。即使处理一条消息会花费很长的时间。消息应答是默认打开的。我们通过显示的设置原创 2020-10-30 15:16:30 · 3002 阅读 · 0 评论 -
rabbitmq持久化,防止在异常情况(重启,关闭,宕机)下数据的丢失
rabbitmq持久化:持久化是为提高rabbitmq消息的可靠性,防止在异常情况(重启,关闭,宕机)下数据的丢失1.交换器(exchange)的持久化上面阐述了队列的持久化和消息的持久化,如果不设置exchange的持久化对消息的可靠性来说没有什么影响,但是同样如果exchange不设置持久化,那么当broker服务重启之后,exchange将不复存在,那么既而发送方rabbitmq producer就无法正常发送消息。这里博主建议,同样设置exchange的持久化。exchange的持久化设置原创 2020-10-30 14:55:46 · 2098 阅读 · 0 评论