简单题,你从消息队列里面都能猜到这个就是为了削峰的。
但是如果你想在这里刷亮点,那么就要讨论深入揭示消息队列甚至不能看做是必须的,进而讨论到消息队列崩溃之后的容错问题。
很显然,消息队列的作用无非就是削峰、解耦和异步。那么在秒杀这里只能是为了削峰,而不可能是别的,看这个图:
当然,在面试中如果你只是简单削峰,那么就不够装逼了。你要装逼,就必须讨论一个问题:这个 Kafka 是必须的吗?
完整内容需要VIP会员权限
Kafka 主要是起到一个削峰的效果。
在一些大型秒杀活动中,依旧会有很多人预扣库存成功。如果没有 Kafka,而是直接创建订单,那么订单服务和数据库都不一定能支撑住那么高的并发。
Kafka削峰;
轮询秒杀结果;
但是,在秒杀架构里面,Kafka 并不是一个必须的东西。
商品少,好下单;
Kafka并不是必不可少;
Kafka崩溃容错;