消息队列
文章平均质量分 92
sha1024
乐于分享,共同学习,共同进步,持续更新
展开
-
rabbitmq保证消息不重复消费,消息不丢失,消息积压问题处理
由于生产者发送消息给MQ,在MQ确认的时候出现了网络波动或者其他情况,生产者没有收到确认,实际上MQ已经接收到了消息。这时候生产者就会重新发送一遍这条消息。生产者中如果消息未被确认,或确认失败,我们可以使用定时任务+(redis/db)来进行消息重试在发送消息的时候写入redis 或者 db ,当没有收到确认的时候,通过定时任务先查reids或者db里面是否存在,存在就不重复发送,不存在则发送。原创 2022-09-29 17:04:23 · 1221 阅读 · 0 评论 -
玩转消息队列之面试-----踩坑系列
三连问为什么要用消息队列?消息队列的优点和缺点?kafka,ActiveMQ,RabbnitMQ,RockerMQ都有什么区别?第一系统里面为什么要用消息队列这个东西?平时我们说用过redis,MQ,但是其实很多人并不知道自己为什么用这个东西,就是为了用而用,或者是被人设计的架构,自己从头到尾没有想过。第二,既然用了消息队列这个东西,好处和坏处是什么要知道要是没有考虑过这个,盲目弄个mq进系统里面,后面出了问题你自己是不是溜了给公司留坑?第三,既然用了MQ,可能是某一种mq,当时你自己有.原创 2020-10-16 10:19:25 · 268 阅读 · 0 评论 -
消息被重复消费?----- 消息队列踩坑系列
如何保证消息不被重复消费,或者说如何保证消息幂等性。rbbitmq,rocketmq,kafka,都有可能出现消息重复消费的情况,以kafka来说kafka实际上有个offset的概念,就是每个消息写进去,都有一个offset,代表的消息的序号,然后consumer消费了数据之后,每隔一段时间(定期定时),会把自己消费过的offset提交一下,表示“我已经消费过了,下次重启之后,还是从上次消费到的offset来继续消费。如果遇到意外情况,还没来得及提交offset,进程就被杀掉了,重启之后,可能有些原创 2020-10-13 11:44:58 · 673 阅读 · 0 评论