关于黑马点评的一些疑问

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 河北

相关推荐

一面(25/2/26)(过)    1、自我介绍    2、介绍一下HashMap。(扩容机制、寻址、为什么扩容是二倍)。    3、如果说当前有1000个k-v结构数据放入HashMap中,最终HashMap中是什么情况。(数组桶2048个)    4、HashMap线程安全吗?哪些是线程安全的hash结构?    5、介绍一下concurrentHashMap线程安全实现的原理?(1.8之前、之后)    6、list和set集合的区别?    7、对list遍历想到几种遍历方式?(按下标、语法糖:、迭代器)    8、如果对于list中的元素遍历过程中进行删除满足一些条件的元素,你会怎么做?    9、线程池的有几个参数?    10、线程池的拒绝策略?默认的是哪种?    11、线程池的线程工厂有哪几种?默认的是哪种?    12、三个线程顺序打印a,b,c,有哪几种方式实现?    13、MySQL的分库分表有哪些方式?如何分库?主键设置?路由id?    14、MySQL集群的搭建方式?(答了主从同步,binglog、relaylog、哨兵模式)    15、redis主库挂了之后无法承接写操作,这期间的写操作的有效性和一致性如何来保证?    16、对于索引来说,字段的选择,组合索引的使用。(答重复度小的,联合索引的部分失效)    17、组合索引支持范围查询吗?三个字段第二个字段是时间字段,时间字段进行范围查询会生效吗?    18、从持久缓存中把数据加载到redis中的加载策略,如果让你来设计你有什么思路。就是从mysql到redis的这一个过程的策略?(没听明白,答了redis读取mysql的binlog日志进行数据同步)    19、redis中分布式锁的实现?(黑马点评开始吟唱)    20、OLAP和OATP了解过吗?(???)    21、事务了解过吗?这是本地事务,分布式事务了解过吗?    22、事务如何开启?(答了隔离等级和解决的问题,mysql命令开启,transaction注解开启)    23、在A方法上调用B方法,B方法上使用了transaction注解,B中的事务会生效吗?(this调用无法生效,需要使用代理调用)    24、介绍一下单例模式?(答spring的bean默认单例,比较prototype状态是非单例的)    25、spring中用到的设计模式?    26、消息队列有用过吗?知道是干什么的吗?(了解过,知道有kafka、mq,举例点评里面的秒杀优化)    手撕:5. 最长回文子串    面试官:在我这里算是一个通过,说一下你的问题:消息队列在日常使用非常频繁,要加紧补出来;缓存加载;分布式事务。对于面试实习来说整体表现算是比较优秀的。    反问:公司或者面试官您需要什么样的实习生        上手快,培养成本比较低,可以快速的帮正式成员分担一些任务。对于项目来说不一定技术复杂度越高,而是适合的比较好。二面(25/3/5)(挂)    1、自我介绍    2、把秒杀展开说一说?    3、乐观锁怎么解决超卖问题的?    4、具体是在哪一步?    5、说到分布式,被打断,就单体情况对MySQL操作,能不能解决一人一单超卖问题?    6、详细说一下,怎么判断?判断哪些字段?判断完之后成功和失败情况分别是什么样的?    7、怎么解决库存超卖?那你怎么解决主从延迟问题?查完了再去写,肯定是有延迟的?(答先判断扣减库存是否成功,成功再下单)    8、那你怎么保证这两个操作不被打断呢?(死脑子快转啊,应该是想问事务,用transaction注解,当时脑子里面在想什么啊)    9、后面扯来扯去有扯到消息队列里面了。    10、分布式锁怎么实现的?(说到误删的问题,面试官说这个问题一般不会有)    11、接着拷打巴拉巴拉,又扯回库存超卖问题了。(应该是一直想问事务)    12、后面又拷打一些场景    手撕:写一个单例模式,get方法没加static,被提醒了一下。    总结:其实问的很常规,只不过问的很细节,项目还是不熟吧,反思。
点赞 评论 收藏
分享
评论
45
393
分享

创作者周榜

更多
牛客网
牛客企业服务