消息队列
文章平均质量分 54
GoslingWu
微信公众号请搜索 架构师与哈苏
展开
-
消息队列怎么保证消息有没有重复消费(幂等性)?
普通业务控制幂等性 1.mysql唯一索引 2.token机制(请求前生成一个token,请求时携带这个token,如果这个token在redis中没有则继续,有则 有请求进行中) 3.mysql悲观锁,乐观锁(推荐使用乐观锁) 4.分布式锁(redis,zookeeper) 问题的原因 我看先来看下整个流程,怎么会出现重复的消息呢? 生产者 -> MQ -> 消费者 1.生产者发送了多条同样的消息到MQ 2.一条消息消费了多次(在生产者只发送了一条消息的情况下,原创 2021-05-10 14:14:47 · 211 阅读 · 1 评论 -
消息队列优缺点和选型
消息队列的优点 削峰: 比如:在一天中2点的访问量突然爆发,没用MQ的话系统,根本承受不住这种压力,数据库直接down掉,有了MQ会把突增的请求放入,慢慢消费掉。 解耦: 比如说有两个服务A和B,A把消息放到MQ中,B来进行消费。A只需要把消息放到MQ中,不用关心否有人进行消费。B只需要有消息就从MQ中取来消费,不用关心A的情况。 异步: 请求放到MQ中,请求就算结束了,可以立刻返回响应给客户端,用户体验极好,消费者异步去消费消息。 消息队列的缺点 系统可用性降低 系统外部依赖越原创 2021-05-10 10:59:43 · 203 阅读 · 1 评论