项目
1.项目的细节介绍
项目的架构
项目对于安全性、可用性和并发能力的优化
2.刷题平台在考试时如何保证问答的自动保存?
-
使用debounce防抖机制实现,用户输入停顿5s后自动触发保存
-
在数据库中添加草稿箱表,以userID和questionId作为联合唯一索引,保证一条草稿数据
-
先保存到本地缓存localStorage,然后异步缓存到数据中,避免后端保存失败
-
刷新重新加载界面时先从数据库中查找,没查到再去本地中查找
3.HotKey的功能是什么?
3.1 标记Redis中的热点数据
-
HotKeyClient会通过AOP拦截Redis的访问,统计每个key的访问频率,并将一秒内的访问次数发给worker端
-
worker端将客户端发来的数据进行累加计算,如果达到规则配置的阈值,那么标记为热点,将其推送给客户端
-
客户端缓存预热,将热点key缓存到本地缓存中
3.2 执行逻辑
-
判断key是否被标记为热点
-
如果是热点,直接从本地缓存中获取,本地缓存初始化时要注意的点
-
不是热点,那么直接从Redis中获取
4.项目中ES是如何使用?
4.1先将一些字段全量存入ES数据库中
-
字段选择如:标签,创建时间(排序),类型等字段
-
创建索引:中文的话使用
ik_smart
4.2当用户使用关键词查询时先查询ES数据库中数据,获取到题目ID然后返回
4.3如果用户点击题目查看具体内容,那么再去数据库中查找题目的所有信息并展示
5.Sentinel做的流量控制和熔断实现了什么?
-
针对某些耗时较长,访问频率较高的接口进行控制,避免请求过多造成系统过载,比如说访问题库的接口
-
使用@SentinelResource(value, blockHandler, fallback)注解保护资源
-
blockHandler是当触发了Sentinel流控规则时的异常,可以进行限流、熔断
-
fallback则是捕捉业务执行异常
6.使用Sa-Token实现多点登录这块简单介绍一下?
-
在用户登录接口中使用Sa-Token添加一个判断
-
判断用户是否已经登录,并获取Session中用户登录的设备
-
根据配置的规则,将不符合规则的登陆设备踢下线
7.简单说一下Spring AI的组件?
8.RAG切片,切片的大小和检索是怎么考虑的?
八股
9.SQL优化的经历,产生了什么现象,如何做的优化?
10.关于垃圾回收和性能调优,项目中做了哪些呢?
11.项目中使用过的设计模式?
-
观察者模式
-
策略模式
-
建造者模式

3772

被折叠的 条评论
为什么被折叠?



