拿下技术面上传简历

下单服务在下单成功后往消息队列发一条“订单已创建”的消息,积分服务作为消费者拉取消息并给用户加积分。现在只有一个消费者实例,它处理完加积分、还没来得及提交 ack 就宕机重启了。请问重启后这条消息会怎样?会不会给用户重复加积分?如果你来保证积分最终只加一次,你会怎么做?

工程与系统设计数据与存储校招知识点 1 个

面试官在考什么

判断候选人是否理解 MQ 的 at-least-once 投递语义来自 ack 机制,以及是否知道幂等要在消费端用业务唯一键来实现,而不是幻想 MQ 能保证“只投一次”。

消息队列

回答框架 · 前两步

  1. 消息没有被 ack,Broker 会认为它没被成功消费,在消费者重连后重新投递,这就是 at-least-once 语义。
  2. 所以消费者一定会收到重复消息;如果“加积分”这个操作本身不幂等,用户就会被重复加积分。

还有 3 条答案要点、 3 层追问、 5 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

同一能力域的其他题