淘天二面凉经。
肯定是凉了,不过发个帖子问问大家以下这些问题应该回答?求解
1. 秒杀功能,满足秒杀条件,在异步消费过程中,如果发现该用户的信誉有问题,此时应该怎么办(必须在消费端解决)?此时由于并没有消费成功,redis中的库存应该加一,这该如何操作?
2. 请求限流,一分钟内600个请求限流,具体详细如何做呢?计数法?其他方案?
3. 秒杀分布式锁优化?比如有1000个名额,那么对于第1001个用户来说,前面的操作应该如何加快效率呢?对第1001个用户,等这么久,不太算秒杀了
4. 线上full gc的原因是为什么呢?举最常见的例子,不包括大对象创建等,死锁导致的。举最常见的例子
1. 秒杀功能,满足秒杀条件,在异步消费过程中,如果发现该用户的信誉有问题,此时应该怎么办(必须在消费端解决)?此时由于并没有消费成功,redis中的库存应该加一,这该如何操作?
2. 请求限流,一分钟内600个请求限流,具体详细如何做呢?计数法?其他方案?
3. 秒杀分布式锁优化?比如有1000个名额,那么对于第1001个用户来说,前面的操作应该如何加快效率呢?对第1001个用户,等这么久,不太算秒杀了
4. 线上full gc的原因是为什么呢?举最常见的例子,不包括大对象创建等,死锁导致的。举最常见的例子
全部评论
大佬继续努力
第三个可不可以多设置几个锁,然后每个锁里面放相同的库存,用户过来的时候可以利用用户名进行hash,到对应的锁里面进行判断,然后各自去处理
1.分布式事务?查信誉和消费等操作同时进行,有问题全回滚
2.redis实现滑动窗口限流
哈人。真的是应届生应该会的吗。佬是有相关项目吗
4. 感觉可能是内存泄露、分配的内存太少了,内存泄露相关的有threadlocal
第一问消费的时候查一下信誉,不满足的话redis里库存加1,这样不可以吗? 线上full gc可能是因为消息堆积吧
相关推荐