正浩创新,Java 后端,一面

简历的两个项目,请挑选其中一个做下介绍,讲讲项目的架构、亮点等内容

分库分表,一般使用什么主键去做?(项目中用到了分库分表)
数据库分库分表后,得到一个用户名时,如何实现到相应的数据库中去查询?

Redis 有哪些数据结构?
使用过 Hash 类型的数据结构吗?

你刚刚提到了设计模式(项目),你清楚有哪些设计模式吗?
责任链模式,具体怎么实现的,你清楚吗?

Redis 缓存穿透、缓存雪崩、缓存击穿 分别是指什么?有相应的应对策略吗?

有研究过 Spring 的源码吗?(除了 IoC、AOP)==> 目的:了解平常看的源代码多不多

常用的并发控制手段有哪些?不用讲太细,宏观层面即可,不用只局限于 语言层面(Java),其他手段也行(如:Redis)

你刚刚提到线程池,线程池有哪些常用的参数?
当请求不断增多,线程数和阻塞队列的变化是怎样的过程?
线程池中,核心线程数和非核心线程数是怎样设置的呢?

数据库中,聚簇索引和非聚簇索引?
索引失效的场景?
联合索引 (a, b, c),where b = xxx and c = xxx and a = xxx 会走索引吗?

现在有个 Controller ,函数中使用到了线程池,线程池核心线程数:16,最大线程数:16,阻塞队列长度:20万,每个任务的处理时间是 0.5 s,请求速度:每秒 100 QPS,这个时候会有什么现象出现?这个会有什么问题呢?例如:CPU、内存、服务请求数 这些指标会有什么变化?(注:任务不怎么耗内存,内存不会爆)

对面试官回答的复述(复述内容可能不正确,可能存在对原回答的曲解!!!):
16个线程,0.5 s 处理一个,1 s 处理32个请求,其他68个请求会被放到阻塞队列中(先进先出);存在很多请求堆积在阻塞队列,由于长时间得不到处理,客户端网络请求会有个断开时间,一般是1分钟左右,客户端断开,服务端可能会出现很多 CLOSED_WAIT  状态(TCP 四次挥手),由于 Linux 进程会有句柄数限制(65535),当句柄数被占满之后,用户请求进不来。
所以,前期会出现随着请求量不断增加,CPU使用率会一直增长到一定的水平后稳定,内存使用率随着队列积压逐渐上升,当文件句柄数到达上限后,这时请求已经进不来,请求量从刚开始比较均匀到后面就没有请求量了,CPU  仍继续处理队列中请求,整个服务出现“假死”现象。
#正浩创新校招# #EcoFlow#
全部评论
刚面完二面,居然是老乡😛
1 回复 分享
发布于 2024-12-20 16:29 湖南
看来一个面试官哈哈,马上二面
点赞 回复 分享
发布于 2024-12-19 13:18 江苏
你们是25届吗
点赞 回复 分享
发布于 2024-12-19 15:42 重庆
问这么难?
点赞 回复 分享
发布于 2024-12-20 15:48 江西
分库分表主键选择
点赞 回复 分享
发布于 2024-12-23 04:02 浙江

相关推荐

2024-12-21 18:48
西安邮电大学 C++
黑皮白袜臭脚体育生:按使用了什么技术解决了什么问题,优化了什么性能指标来写会更好另外宣传下自己的开源仿b站微服务项目,GitHub已经390star,牛客上有完整文档教程
点赞 评论 收藏
分享
评论
6
13
分享

创作者周榜

更多
牛客网
牛客企业服务