6月22号面经

今天早上又去面试了一家公司通勤只需要40分钟但是可惜还是挂了我不明白到底要学到什么程度
面经:
1.自我介绍
2.讲项目
3.了解Netty吗
4.redis为什么快
5.三个消息队列有什么区别你为什么选择RockeMQ
6.如何确保消息的一致性
7.说一下数据库的锁机制
8.数据库隔离级别
9.说一下原子性 一致性 隔离性 持久性
10.(没听清)说一下arraylist还有list的区别
11.说一下缓存穿透以及如何解决的
12.说一下分布式springcloud都有那些组件
13.如何理解面向对象
14.Object类都有哪些基本方法
13.提问

回答:
1.我叫ysh是成都信息工程大学的一名大三学生,目前写过三个项目其中包括高并发秒杀项目,ai内容生成Saas平台,还有一个微信小程序外卖平台,我的技术栈包括springboot,springcould,redis,mybatis-plusl等
2.讲的是秒杀项目:这个项目呢我采用的是一个分布式的模式去完成的其中包括秒杀,订单,商品,支付,还有登录。网关gateway还有一个公共common类另外几个模块都依赖common模块;其中网关层我做了一个基于商品id的令牌桶限流,然后秒杀模块我做了基于userId的Zset滑动窗口限流这两个限流基本能拦下百分之90的流量。然后就是秒杀模块首先我做了一个初始化库存的操作我是将秒杀库存写到redis中然后扣库存都是预扣redis里的库存,还有一个就是分布式锁,我用的是redission来做的避免了自动续期的问题。用户点击秒杀后用openfeign远程调用order模块去生成订单。生成订单又远程调用product模块去查商品,查商品就涉及到一个缓存击穿的问题了我同样是用redisson写了一个互斥锁拿到锁的线程去查数据库写入缓存,然后还做了防缓存雪崩通过加随机TTL然后我在查商品同时还去将库存缓存到redis中这样不管用户是普通下单还是秒杀都可以扣这个库存了保证了一个库存的扣减;然后为了保证数据一致性我做了一个定时轮询每三秒去批量更新数据库库存;之后就是支付模块当生成订单是会调用一次支付功能如果用户未支付就会把消息设置一个ttl过期后放到延迟队列里然后延迟队列消费者等到有消息来了去做一个幂等性的校验先去订单状态只有是未支付的订单才会修改状态为取消;其中这里有一个小问题我自己已是真的遇到了就是当自动过期还有支付同时进行的一个并发冲突;我是通过用mybatis-plus的lambdaupdatequery将查改提交三个操作放在一起形成原子操作;同时还用了一个乐观锁当更改成功会染回rows=1如果更改失败了就读取最新的状态在进行判断。
3.不知道(等我学完回来补)
4.因为redis是单线程的没有上下文切换还有抢锁的消耗然后redis是多路IO复用一个线程监听多个接口哪个接口有消息就处理哪里还有就是redis是纯内存操作
5.kafka的吞吐量高但是功能较少原生不支持延迟队列死信队列等然后rabbitMQ的消息可靠性比较高但是不适合高并发场景然后rocketMQ就比较适合金融支付高并发还有延迟支付这些方面
6.开启生产者的confirm机制broker确认收到消息然后broker的队列持久化消息持久化开启消费者的手动ack,保证消费消息幂等性
7.学完回来补
8.读未提交读已提交可重复读可传行化
9.原子性就是值一系列操作要么全部执行成功要么执行失败回滚没有中间态隔离性是指多个并发事务事务互不干扰一致性值事务提交后数据总和不变比如说银行转钱转完AB两个人总和不变持久性就是事务提交后一个数据的修改就不变了
10.如果是arraylist还有linkedlist的话arraylist是基于动态数据实现的linkedlist是基于双向链表实现的然后再随机访问上arraylist的时间复杂度是O(1)可以基于下标直接访问二linkedlist需要遍历整个链表然后在插入方面如果是在头部还有中间插入arraylist需要先将将数据全部向后移而linkedlist只需要将新节点的next指针指向之前的节点
11.缓存穿透是指一个请求访问缓存和数据库里都没有的数据解决方案是1.缓存空值但是当请求不同的数据是就没用了2.用布隆过滤器
12.openFeign nacos gateway sentinel Seata loadblandcer
13.面向对象首先我先说一下面向过程面向过程就是将问题拆成一个个函数依次执行比如做一道菜我要买菜备菜炒菜依次完成然后面向对象就是把问题拆成多个对象通过调用对象来解决问题把这个过程封装到一个类里当我想要去用时我就可以去调用这个类的方法就比如我让一个厨子去做饭我不需要去管怎么做
14.toString() HashCode() equals() wait() notify()

posted @ 2026-06-22 20:40  千砂  阅读(6)  评论(0)    收藏  举报