阿里中台二面面经

1.自我介绍

2.面试官开始介绍部门做的业务

3.聊一下自己做的项目

4.UV统计怎么做的?为什么要这么实现呢?

用HyperLogLog为什么不会占用很大空间

呢?16KB怎么去存储这个数据呢

5.好友关注怎么做的

6.项目的哪个点是有挑战性的

7.秒杀为什么要用消息队列

8.Redis挂了怎么办,整个集群挂了就不行了对吧?

9.但你的库存信息都是在 Redis里面,对吧?就是限流,你取不到库存了吗

10.你怎么保证那个 Redis 里面库存和 DB 里面的库存它是一致的,没有可能出错?

11.你那个 Redis 你去做扣减库存怎么保障它的原子性呢?

12.不用lua脚本会带来什么样的问题?

13.扣减库存的原子性是为了解决什么样的问题

14.假设这个地方我们不用 lua脚本,对吧?就用最普通的方案会带来什么样的问题?

15.乐观锁怎么解决超卖的问题

16.你能那个详细的描述一下lua脚本里面是用了什么样的Redis的命令?

17.你lua脚本就是怎么写的?就是你肯定是用了Redis的命令,对吧?

18.比如说你扣了库存,我们肯定是要做支付,对吧?那库存和支付的顺序是怎么样?先支付再扣,或者先扣库存再支付,这个过程你来讲一下吧。

19.创建订单,然后假设支付失败了呢。

20.那怎么去把数据写到 Redis 里面呢?你这个时候你 Redis里面库存也得回加,对吧?这里就可以会涉及到一个你DB的库存跟 Redis的库存的一致性的问题,怎么去保障它们一致性?

21.因为消息丢失导致的这个消息消费失败导致的库存不一致,怎么发现这个问题

22.重新发消息的时候会不会导致那个库存的操作重复?

23.通过订单号去做幂等是吗。

24.那假设那个用户量进一步的变大,就可能你一步的去消费MO的消息的时候,DB的压力还是会比较大,还是会消化不完,这个时候我们应该怎么去优化呢?

全部评论

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务