2025.5.19 26min
深挖项目、技术选型和一些hr问题
自我介绍
- 项目是根据网上开源项目自己做的吗
- 说说用户登录的整个流程
- threadlocal怎么持有用户
ThreadLocal生命周期是线程,一个HTTP请求由一个单独的线程来处理。
每次请求时,都会在拦截器中从redis中获取用户登录凭证,根据这个凭证来获取用户登录信息,然后存在threadlocal中 - Kafka作用,为什么要用Kafka
- 从业务角度说说为什么要用Kafka,不用是怎么样
如果不用消息队列,代码都写在一段里,会怎么样
代码耦合度变高,维护和测试难度变高;
在高并发情况下,有消息需要同步就立即发送,当消息过多,就会耗尽CPU资源 - 用Kafka有什么好处和坏处
优点:削峰、解耦、异步
缺点:增加维护的难度,对于高性能的消息队列有一定的资源消耗,网络不佳的情况下延迟较高 - 拦截器做了什么
- 说说Spring中的代理
- Spring事务,两个public的方法,一个方法调用另一个方法,里面方法传播机制是Required,事务会不会失效(会失效,类内部调用方法会失效,不走AOP,直接在内部方法上调用)
- 项目中遇到的问题
- 缓存和数据库不一致,先更新数据库再删除缓存,缓存删除失败了会怎么样(缓存也有过期时间,到时间就删除了)
- 缓存删除失败重试要怎么重试(while循环重试,或者消息队列自动重试)
- 实验室中的工作
- 分库分表怎么做的(每月开始是自动建表,传感器怎么知道要放到自动建的表,某个字段存的开测时间)
- 实验室项目中线程池怎么做的
- 说一件学习过程中压力比较大的事(开题前,改模型跑实验,最后有点成果了)
- 文档存在redis中真的比存在数据库中快吗,文档存的是什么格式
- 说说自己的优点和缺点
- 未来的职业规划
- 参加比赛的内容,分析一下为什么能得一等奖。
反问(建议积累实践经验,可以去互联网大厂积累经验。。)