关于黑马点评的一些疑问

1.为什么要用redis存储点赞,大量点赞如何优化
2.异步下单了,写入数据库失败了怎么办,一致性如何保证(看好像没有使用事务了,但有ACK以及处理pending-list)
3.判断完了一人一单和超卖,下单更新数据库时再次查询库存是否充足以及乐观锁和分布式锁是不是没有必要了
4.项目中遇到的困难(想说滚动分页查询但是源码还是有BUG的怕给自己挖坑)
5.最严重的一个问题,为什么要用mq,用线程池不是一样吗,不是分布式,生产方和消费方在自己的服务上进行消费吗?
全部评论
个人猜想: 1、bitmap 设置用户id 偏移位为1 2、db 减库存和创建订单肯定是在事务里。但 cache 和 db 的一致用消息确认+重试+订单号唯一幂等保证。不过其实也可以不处理,对应的场景就是少卖,给用户提示没抢到就行,而且商家在提示曝光率的同时减少了优惠券的损失。 3、兜底,万一 mq 消费完没来得及回复 ack 挂掉了,下次还消费就有重复消费问题
12 回复 分享
发布于 2024-08-16 10:03 山东
我也被问过,1.哈希分片,2.就是事务,3.没明白你的意思 4.我被问到答的就是这个分布式锁这一块 其他的感觉没啥意思 我还被问到视频记录哪里 哪里他会问你有没有更好的方案,但是他没说
5 回复 分享
发布于 2024-08-15 23:28 湖北
mq是有必要的,如果使用线程池的话,那不是每来一个message都要拿一个新的线程来处理?用了mq就可以让一个线程一直等待处理获取到的message
3 回复 分享
发布于 2024-09-22 22:50 江苏
点评项目很多方案都是假设分布式、高并发场景的
2 回复 分享
发布于 2024-09-25 13:31 江苏
佬,有没有搞明白问题3啊,那个分布式锁意义何在?
1 回复 分享
发布于 2025-04-05 19:25 浙江
第一个问题redis的set可以确保一个内容的点赞收藏只会进行一次
1 回复 分享
发布于 2024-08-31 13:24 四川
分页查询不用MyBatis一样做😂
1 回复 分享
发布于 2024-08-16 20:11 上海
乐观锁解决超卖,分布式锁实现一人一单,查询库存充足是兜底操作吧🤔
1 回复 分享
发布于 2024-08-16 00:40 四川
5 我的理解是,尽管我的项目不是分布式微服务架构,但是为了避免单点故障,项目设计为多服务端。 削峰填谷:秒杀服务可能产生大量的异步处理逻辑,当任务数量过大,线程池的内存队列无法承载大规模任务,还可能导致系统崩溃(有界队列装不下,无界队列爆内存),而引入 mq 中间件则不会有这个问题,即使生产者和消费者在同一台服务器实例上,也可通过参数控制消费速率防止服务突然崩溃。 任务丢失:一旦某一台服务端挂掉,其中线程池队列上还未执行的任务会完全丢失,引入 mq 可以保证数据可靠性,这也符合多服务端设计的逻辑,即避免单点故障。 不知道这样理解对不对。
点赞 回复 分享
发布于 2025-06-16 17:22 四川
接好运
点赞 回复 分享
发布于 2025-06-02 10:28 河南
mark
点赞 回复 分享
发布于 2025-04-27 20:34 上海
m
点赞 回复 分享
发布于 2024-11-21 15:43 河北
m
点赞 回复 分享
发布于 2024-09-23 22:47 陕西
m
点赞 回复 分享
发布于 2024-09-17 13:39 山东
m
点赞 回复 分享
发布于 2024-09-11 02:55 辽宁
3我觉得确实没必要了
点赞 回复 分享
发布于 2024-08-16 19:43 北京

相关推荐

01-24 01:39
湖南大学 golang
原项目是黑马程序员的java写的黑马点评,很烂大街的一个项目,我自己和一些网友用go重构了一下,适合27届想走后端的同学入门,学习redis和mysql,难度不高,能够帮助大家对后端开发建立基础认识。我是26届,暑期和秋招期间凭这个拿到了几个大厂offer,也用go面试拿到了java(美团)的offer,字节和腾讯的面试也收到挺多。欢迎小伙伴们来一起学习交流,项目目前已有70+ star,也欢迎贡献代码。可以参考我简历上的写法:小众点评 - 基于Hertz框架的点评网站- 该项目基于 Golang 技术栈,使用 Hertz + hz、Thrift、GORM、Mysql 和 Redis 从零构建了一个点评网站的后端服务,涵盖了好友关注、缓存管理、优惠券秒杀、消息推送和地理位置搜索等核心功能。- 基于 Thrift 定义服务接口,通过 hz 工具自动化生成框架代码。在缓存管理方面,通过 Redis 实现缓存穿透拦截、雪崩预防及击穿保护,提高了查询效率并降低了数据库压力。在秒杀功能实现中,使用了乐观锁和悲观锁来解决秒杀过程中的超卖问题,同时,借助 Redis 的分布式锁机制解决集群环境下的秒杀超卖问题。- 期间为 Hertz 修复了一个单测中的 bug 且合入了上游仓库;项目由个人发起并与几位网友共同完成,目前在 github 获得了70 star,地址:https://github.com/lhpqaq/xzdp-go
点赞 评论 收藏
分享
评论
51
449
分享

创作者周榜

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