启动需要在 application.yaml 配置 mysql redis nacos (mysql还需提前建表,权限需插入默认数据。 见/databases)
一些模块用到 elasticsearch mongoDB
nacos用于注册自己,让其他nacos也注册的能动态发现,这样可以根据名称来请求(而不是静态ip)
用户:开始面试 -> 回答问题 -> 获取面试结果
服务器:向面试者推送题目 -> 每个回答音频及时接收,转文字存储 -> 将面试内容通过消息队列给AI评分 -> 返回给用户
暂时围绕八股。
4道简单 + 3道中等 + 1道困难
例如:
[
{
"id": 1,
"title": "C++ 中的虚函数与虚表机制",
"description": "考察 C++ 面向对象特性中的多态实现及虚表底层机制。",
"difficulty": "medium",
"tags": ["C++", "面向对象", "虚函数", "多态"],
"jobType": "后端开发",
"company": "字节跳动",
"content": "请解释 C++ 中虚函数的工作机制,包括虚函数表(vtable)是如何构建的,虚指针(vptr)在对象中的作用,以及多重继承下虚表的组织方式。"
},
{
"id": 2,
"title": "Java 内存模型与 volatile 关键字",
"description": "考察 Java 并发控制中的内存可见性与指令重排。",
"difficulty": "hard",
"tags": ["Java", "JMM", "volatile", "并发"],
"jobType": "后端开发",
"company": "阿里巴巴",
"content": "请说明 Java 内存模型的基本原理,volatile 关键字的作用及其实现方式,volatile 能否保证线程安全?举例说明。"
},
{
"id": 3,
"title": "TCP 三次握手与四次挥手的过程解析",
"description": "网络通信核心流程,需理解每一步状态转换。",
"difficulty": "medium",
"tags": ["计算机网络", "TCP", "三次握手", "四次挥手"],
"jobType": "后端开发",
"company": "腾讯",
"content": "请详细描述 TCP 建立连接的三次握手过程和断开连接的四次挥手过程,说明每一步的状态和标志位,并解释为什么连接是三次、断开是四次。"
},
{
"id": 4,
"title": "进程与线程的区别与联系",
"description": "考察操作系统基础知识与实际应用能力。",
"difficulty": "easy",
"tags": ["操作系统", "线程", "进程", "资源管理"],
"jobType": "通用开发",
"company": "华为",
"content": "请比较操作系统中进程与线程的主要区别,分别从资源占用、调度、通信方式等方面分析,并说明它们在实际开发中各自的应用场景。"
},
{
"id": 5,
"title": "MySQL 索引结构与使用优化",
"description": "数据库性能优化基础,核心面试知识点。",
"difficulty": "medium",
"tags": ["数据库", "索引", "B+树", "性能优化"],
"jobType": "后端开发",
"company": "美团",
"content": "请解释 MySQL 中索引的底层数据结构为何选择 B+ 树?什么是聚簇索引与非聚簇索引?在查询优化中,索引是如何提高性能的?"
}
]
1.推送题目策略:
2.面试过程 高可用、断点续答、状态恢复
3.RabbitMQ 把面试会话转文字的结果传给AI模块