斩获美团秋招!感谢大麦项目!

最开始时用的点评项目,面试官总问我有什么亮点?我是真的回答不上来啊

后来在gitee上看到了大麦这个项目,介绍的也比较好,就跟着学习了,亮点确实不少,用的是SpringCloud微服务
我把面试时问过的问题贴出来,八股文就不贴了,只贴和项目有关的,希望对大家有帮助

1. 项目中的分布式锁设计上使用了多种使用方式,为什么这么设计?还提到了事务问题,会造成什么问题?
2. 为什么要使用本地锁和分布式锁结合的方式?在不同用户选择不同票价的情况下,多个加锁和解锁的操作不会有问题吗?
3. 在解决缓存击穿的问题上,我看项目中提到可以把锁去掉来进一步提高并发?具体是怎么做的?
4. 存在缓存雪崩的问题吗?如何处理的?
5. 订单的分库分表用到了基因法,详细说说?
6. 用户购票后的剩余数量在数据库和缓存中一致性是怎么保证的?
7. 在Redis中怎么设计的存储?都使用了什么数据结构?如果进一步拆分?
8. 项目中提高了深度使用了Springboot的自动装配机制?这个深度使用体现在了哪里?
9. 在使用ElasticSearch来显示演唱会的分页,那深分页问题怎么解决的?
10. 对Redisson进行分片拆分设计提高延迟订单关闭的效率?这个分片拆分是怎么设计的?和分库分表的分片是一回事吗?
11. 分布式链路id为什么不用Skywalking而是自己设计?在使用线程池的情况下如何解决传递的?
12. 用树形结构来搭建业务验证这种方式不觉得麻烦吗?真正作用在哪里?
13. 项目中用到了这么设计模式,分别都是在哪里运用的?在设计的过程中是如何思考?
14. 详细讲讲灰度服务的过滤流程,如果我不在请求头中传递的话,还有其他的方式吗?
15. 觉得项目中哪方面带给你的帮助最大?不一定是技术方面

还有一些其他的问题,不太重要,这里就不写出来了

其实刚才说的这些问题,有些细节没有答的很好,因为时间有点来不及,星哥说让我以后慢慢的学习整个项目对工作也有帮助

当时星哥和我说 面试后会帮我好好复盘总结,只要帮忙宣传一下项目就行,现在既然已经成功了,那就帮忙一下

项目中的亮点其实还挺多的,我自己也没学完,像锁的优化、数据一致性、缓存穿透、击穿、雪崩、缓存粒度的控制、分库分表、设计模式什么的都有了

面试官对项目中的解决方案也是比较有兴趣

项目地址在gitee上搜索 damai 就可以了
全部评论
m
2 回复 分享
发布于 2024-11-03 16:20 广东
m
点赞 回复 分享
发布于 05-23 10:09 上海
可以看看简历吗,佬
点赞 回复 分享
发布于 04-21 22:22 陕西
点赞 回复 分享
发布于 03-31 10:42 辽宁
m
点赞 回复 分享
发布于 03-09 15:57 云南
m
点赞 回复 分享
发布于 01-13 01:37 浙江
有文档吗哥
点赞 回复 分享
发布于 2024-12-23 15:29 广东
这个项目要做多久,感觉难度有点高,你有几段实习啊
点赞 回复 分享
发布于 2024-12-13 18:08 辽宁
m
点赞 回复 分享
发布于 2024-11-11 12:07 四川
m
点赞 回复 分享
发布于 2024-11-08 18:16 湖北
校招就会那么多?
点赞 回复 分享
发布于 2024-11-04 18:02 北京
m
点赞 回复 分享
发布于 2024-11-04 15:21 江苏
m
点赞 回复 分享
发布于 2024-10-26 00:02 广东
m
点赞 回复 分享
发布于 2024-10-13 20:01 湖北
m
点赞 回复 分享
发布于 2024-10-13 12:43 北京

相关推荐

问题1:为什么会使用分库分表,到达了什么样的数据级别才会去加设计,是否对数据量有一个统计我的理解:看星哥之前写过 单表行数超 500 万行或者单表容量超过 2GB,推荐分库分表,但是面试的过程中怕被问自己写的项目会有这么大的数据量吗不要这么硬背,具体情况具体分析,有的表字段少,经常是条件等值查询,这样加个索引,一个亿也不用分表,有的字段多,还是范围查询,可能5000万就得分表,面试官问你你说是自己在学习分库分表应用到项目中,自己造了几千万的数据量问题2:基因法需要分表的一个数量和确定的一个东西(我的理解是分表的依据,例如大麦中是订单编号和用户id),但是正常的生产环境中是可能动态改变的,比如说需要动态扩容的话,怎么解决呢(例如当前有4个分表,但是现在需要扩充到8个分表),是使用双写吗?这个在扩容前就要考虑好能维持多少年内不需要再扩容。转转架构师在分库分表前,通过之前记录的数据增长量,做了256张表,能在7年内不需要再扩容,如果需要扩容的话,可以使用双写,新扩容表写的过程中,用新的分库分表算法问题3:如果在防止超卖的过程中,Redis不可用了,怎么解决我的理解:使用Redis集群和主从复制吗?因为Redis宕机的话数据库的数据也不能保证是最新的版本,所以得尽量保证Redis不宕机?肯定要使用redis集群模式,但可能会有主从延迟,导致从节点数据不是最新的,但关系不大。可以在用户生成订单后,修改数据库的座位和库存,然后用户支付后,再改数据库的座位和库存,每一步都做好验证。这样从节点的数据问题会降到最低。问题4:如果在当前的幂等验证逻辑中,有一个消息所对应的幂等标识符是不存在的,按照现有的逻辑是可以执行的,但是幂等验证之后的业务系统异常了,这个时候应该怎么处理呢(即通过了幂等的验证,但是后面的服务down掉了,比如说下游抛了一个异常出来)【没太明白应该回答什么,是指需要将幂等标识符重新进行设置吗】异常了就异常了呗,把这个请求的标识从redis中删除了,就像分布式锁时,业务异常也要执行解锁一样,让下一个请求进来正常执行,然后设置好标识位问题5:本地缓存为什么使用Caffine呢,为啥不用Guava因为caffine的性能要远高于Guava,没有其他复杂原因我的理解:查了下Caffine就是Guava改进而来的,可以这么说吗- Caffine在读写操作方面的性能更高,是基于异步的操作,将淘汰过期操作与读写进行分离- Caffine采用了一种结合 LRU、LFU的算法W-TinyLFU+,具有高命中率,低内存占用的特点
查看5道真题和解析
点赞 评论 收藏
分享
评论
11
94
分享

创作者周榜

更多
牛客网
牛客企业服务