面试项目秒杀项目要点

项目

如果个人没有好的项目,就用高并发秒杀。B站搜高并发秒杀,有慕课网视频,讲的很好。Github搜秒杀,有代码,跑一遍。有时间自己写一遍,没时间就看懂就好。然后准备问题,不要求每个功能都实现的特别好,但一定要多考虑系统可能出现的问题,因为很多人都是这个项目,你考虑的多,自然就显得稍微那么好了点。

1、如何解决超卖?

mysql锁+redis预减库存+redis缓存卖完标记

2、如何解决重复下单?

mysql唯一索引+分布式锁

3、如何防刷?

IP限流+验证码

4、热key问题如何解决?

redis集群+本地缓存+限流+key加随机值分布在多个实例中

5、消息队列的作用?

如何保证消息的不丢失?异步削峰;发送方开启confirm+消息队列持久化+消费方关闭自动ACK,确保消费成功之后自动调用API进行确认。

6、缓存和数据库数据一致性如何保证?

秒杀项目不用保证,其他项目就用延时双删或者先更新数据再是缓存失效,为防缓存失效这一信息丢失,可用消息队***保。

7、压测没有?用什么压测?什么情况?

8、系统瓶颈在哪?如何查找,如何再优化?

 

 

 

你可能感兴趣的:(算法)