一、消息队列
- 优点
- 解耦
- 异步
- 削峰(这个采用并发mq实现,处理高并发请求)
- 缺点
- 降低系统可用性
- 系统复杂度提高
- 一致性问题
二、如何保证消息不被重复消费
- 写数据时,判断数据是否存在
- 数据库唯一键约束
- 写redis,set操作是天然幂等性的
三、如何保证消息可靠性传输
以下只针对RabbitMQ
- 生产者:开启confirm模式
- MQ:开启RabbitMQ持久化
- 消费者:关闭RabbitMQ自动ACK
四、RabbitMQ有哪些重要组件
- ConnectionFaction
- Channel
- Exchange
- Queue
- RoutingKey
- BindingKey
五、RabbitMQ有几种广播类型
- fanout:广播
- direct:直连
- topic:订阅
六、死信队列Dead Queue
这里提一下吧,这里有个死信队列的queue,主要用于一些延时操作,设定信息有效时间,超时就会推到死信队列,公司用这个设计拼团,超过24小时未成团,则取消团