关于黑马点评的一些疑问

1.为什么要用redis存储点赞,大量点赞如何优化
2.异步下单了,写入数据库失败了怎么办,一致性如何保证(看好像没有使用事务了,但有ACK以及处理pending-list)
3.判断完了一人一单和超卖,下单更新数据库时再次查询库存是否充足以及乐观锁和分布式锁是不是没有必要了
4.项目中遇到的困难(想说滚动分页查询但是源码还是有BUG的怕给自己挖坑)
5.最严重的一个问题,为什么要用mq,用线程池不是一样吗,不是分布式,生产方和消费方在自己的服务上进行消费吗?

兄弟们看下我的最新动态帮我选下offer吧,非常感谢
全部评论
个人猜想: 1、bitmap 设置用户id 偏移位为1 2、db 减库存和创建订单肯定是在事务里。但 cache 和 db 的一致用消息确认+重试+订单号唯一幂等保证。不过其实也可以不处理,对应的场景就是少卖,给用户提示没抢到就行,而且商家在提示曝光率的同时减少了优惠券的损失。 3、兜底,万一 mq 消费完没来得及回复 ack 挂掉了,下次还消费就有重复消费问题
11 回复 分享
发布于 2024-08-16 10:03 山东
我也被问过,1.哈希分片,2.就是事务,3.没明白你的意思 4.我被问到答的就是这个分布式锁这一块 其他的感觉没啥意思 我还被问到视频记录哪里 哪里他会问你有没有更好的方案,但是他没说
5 回复 分享
发布于 2024-08-15 23:28 湖北
乐观锁解决超卖,分布式锁实现一人一单,查询库存充足是兜底操作吧🤔
1 回复 分享
发布于 2024-08-16 00:40 四川
分页查询不用MyBatis一样做😂
1 回复 分享
发布于 2024-08-16 20:11 上海
第一个问题redis的set可以确保一个内容的点赞收藏只会进行一次
1 回复 分享
发布于 2024-08-31 13:24 四川
mq是有必要的,如果使用线程池的话,那不是每来一个message都要拿一个新的线程来处理?用了mq就可以让一个线程一直等待处理获取到的message
1 回复 分享
发布于 2024-09-22 22:50 江苏
点评项目很多方案都是假设分布式、高并发场景的
1 回复 分享
发布于 2024-09-25 13:31 江苏
3我觉得确实没必要了
点赞 回复 分享
发布于 2024-08-16 19:43 北京
m
点赞 回复 分享
发布于 2024-09-11 02:55 辽宁
m
点赞 回复 分享
发布于 2024-09-17 13:39 山东
m
点赞 回复 分享
发布于 2024-09-23 22:47 陕西
m
点赞 回复 分享
发布于 2024-11-21 15:43 河北

相关推荐

03-07 12:47
门头沟学院 Java
实习拷打1你对Excel数据做了如何处理,数据量有多大2.优化之前导入多长时长3.SQL优化做了什么东西4.SQL为什么走的慢,是没走索引吗?5.库里存的都是什么数据6.项目中有哪些出彩的地方,还有哪些地方可以做改进项目拷打1.介绍一下第一个项目2.为什么要把信息放到队列里面,为什么不是立即发3.为什么要使用服务的注册和发现,初衷是什么,服务谁来调用,自己练的时候是给谁发的,在哪块用的是注册和发现4..项目的工厂策略模式是怎么用的5.发短信如何发的,如何做到的6.什么情况下用到Redis分布式锁7.如果第一个人获取到锁,但是他执行失败了怎么办(setnx值写进去的话,别的服务读的话不会立马结束吗?不会锁在那等着,有什么好的方法去解决)我答的是用mq发消息去构建缓存,因为mq有消费者确认机制,消费失败重试,重试到一个阈值一直失败就换下一个服务面试官又问超过阈值也没成功怎么办(面试官说如果构建失败异常了,我继续发消息,直到有人处理成功我就不发消息了)8.介绍第二个项目9.用threadlocal干了什么10.zset的底层原理是什么,讲讲11.乐观锁和解决炒卖,分布式锁解决一人一单,这是怎么做的12.如果同时多个人查到的时候都有商品,都下单,这个如何控制防止超卖13.你用的jdk是什么版本14.讲讲g1的垃圾回收器的原理15.初始标记的时候干了什么16.并发标记做了什么17.怎么标记的,标记机制是什么18.并发标记之后会进入的哪个阶段,为什么会有重新标记,解决了什么问题19.重新标记结束后会进入到哪个阶段20.你用过哪些锁21.reentrantlock是如何实习线程重入22.用过线程池吗?23.我们为什么要使用线程池24.核心线程数和最大线程数我们如何设置最合理手撕:在排序数组中查找元素的第一个和最后一个位置
点赞 评论 收藏
分享
评论
45
390
分享

创作者周榜

更多
牛客网
牛客企业服务