← 返回生产场景

📬 消息队列

选型 / 可靠性 / 顺序 / 积压 / 重复消费

🤔什么时候用MQ
① 异步(发通知不阻塞下单)② 解耦(订单服务不直接调短信服务)③ 削峰(秒杀10万请求排队消费)。
MQ吞吐延迟适合
RabbitMQ万级微秒业务消息/灵活路由
Kafka百万级毫秒日志/大数据
RocketMQ十万级毫秒电商/事务消息
🛡️消息不丢(三环节)核心
环节解法
生产者→MQ确认机制+重试
MQ自身持久化+副本
MQ→消费者手动ACK(处理完才确认)
🔁幂等(防重复消费)
// MQ保证"至少一次"投递,重复必然发生 String key = "msg:done:" + msg.getMsgId(); boolean isNew = redis.setIfAbsent(key, "1", 24h); if (!isNew) return; // 已处理过,跳过
生产场景 · 消息队列 · 全栈资料库