百度golang一二三面,求oc
timeline:
一面 1.29
二面 2.1
三面 2.23
测评 2.27
一面 时间7pm(57min)
自我介绍
介绍一下最近一段实习做的项目
实习项目的架构
你主要负责哪部分
你对程序会关注哪些指标(cpu使用率,内存使用率,pod重启次数,oom)
你刚才说的某个服务的cpu使用率突刺是什么原因
怎么排查的cpu使用率突刺,怎么解决的(用pprof排查,最后定位到某行sql查询的代码,字段非常多,结构体反射消耗的时间多,解决办法:查询之间增加几十毫秒的时间间隔或者减少单次查询的条数)
这个sql可以优化吗,怎么优化的(减少无用字段获取,使用联合索引符合最左前缀原则,用了limit+id>偏移量)
为什么不用limit+offset,用limiter+id>偏移量
内存使用率持续上升什么原因,你遇到的造成oom的情况和原因有哪些
你刚才说的遇到的线上故障的原因是什么
如何避免出现线上故障(从运维角度和后端角度分别阐述了一下)
在实习中做了很多优化,说说都做了哪些优化
讲一讲你实习实现的这个分布式限流器,优化需求的背景是什么,为什么做这个优化(redis+lua+滑动窗口)
还讲了为什么使用滑动窗口不用其他令牌桶等算法
限流器效果如何,有没有遇到什么问题
为什么要使用lua脚本(保证原子性)
redis中的滑动窗口你是怎么实现的
zset中存的元素是什么(时间戳)
redis 的zset的数据结构(答的压缩列表和跳表,不过redis7.0之后压缩列表被废弃了改为使用listpack)
zset什么时候用压缩列表什么时候用跳表
为什么压缩列表被废弃了,有什么缺点
跳表底层是怎么实现的,有什么特点
对微服务的看法,有什么缺点
手撕算法:
最长连续序列,要求不只是简单ac,时间复杂度越小越好,如果用排序要自己写排序算法
反问:
部门主要是什么业务
面试结果大概多久出(过了的话最快明晚前hr会联系)
后续:第二天早上约二面
二面 时间11am(56min)
自我介绍
实习项目介绍
实习项目架构
为什么选这个base地
两道算法:
给40亿个整数,不知道是否有重复的数,如何快速判断某个数是否存在?要求时间复杂度和空间复杂度越小越好
给定一个数组,随后数组整体右移k个位置(超过数组长度的部分回到数组最左侧),给出一个数m,返回移动后的数组中值为m的下标值,要求时间复杂度越小越好
打算在base地发展多久
反问:
对应届生的培养方案
部门规模
面试结果大概多久出(看hr)
后续:下午约三面,年前面试官日程比较紧张,年后再约
三面 时间2pm(34min)
自我介绍
base地的选择
和实习mentor关系怎样,密切吗
mentor对你有什么影响
你mentor对你说的印象中最深刻的一句话是什么
看你是非科班,为什么不选择计算机专业
看你最早的实习在大二,为什么大二就选择去实习
看你一开始就选择互联网厂实习,为什么大二就选择了互联网企业
为什么现在的java程序员都转go了
功能或接口上线后怎么把控程序的健康情况
了解aigc和一些企业情况么
反问:
部门负责哪些应用的开发
属于什么事业群
base地是还要再选一次吗(了解一下意向,base可不可选具体看hr沟通)
目前暂无后续,求oc
-----------------------------------------------------------------------------------------------
2.27更新:收到测评
#秋招##春招##百度##百度校招#