个人猜想: 1、bitmap 设置用户id 偏移位为1 2、db 减库存和创建订单肯定是在事务里。但 cache 和 db 的一致用消息确认+重试+订单号唯一幂等保证。不过其实也可以不处理,对应的场景就是少卖,给用户提示没抢到就行,而且商家在提示曝光率的同时减少了优惠券的损失。 3、兜底,万一 mq 消费完没来得及回复 ack 挂掉了,下次还消费就有重复消费问题