Momenta Golang后端面经 已OC
总体流程
5.11 一面 5.14 二面 5.16 OC
============
5.16 HR通知已过,聊了薪资和入职时间
============
5.14 二面
面试官也很nice,自己答得稀里糊涂的。
Go
map和slice是并发安全的吗?我说map不是,好像还想听我讲一些内容,但我不知道讲什么。
slice传入函数后的几种情况。
多个协程之间如何协同运行。waitgroup解决方案,channel如何解决忘记了
Mysql
事务的隔离级别,原理
索引的类别
update一条语句的时候会发生什么
索引什么时候会失效
在group by 和 order by 的时候,什么情况下索引会失效
ES&Kafka&docker
ES的索引了解吗
kafka消息丢失,消息堆压问题
docker端口映射、挂载问题
项目方面
如何保证mysql和redis的一致性 项目的设计难点是什么
算法
判断二叉搜索树
利用中序遍历的有序性质解决的
=========
5.11 一面
面试体验很好,面试官全程引导思考并给出学习建议
Golang
Map的数据结构
sync.Map{}的设计的优缺点。 具体细节忘记了,面试官引导思考要多想一下为什么要这么设计,这样可以提高代码设计能力。
针对线程和协程的不同,讲一下。
Go的GC有了解吗?有观测过吗?
GC有什么缺点?
Kratos框架用的多吗?Kratos框架的代码结构是怎么样的?
Mysql
Mysql底层的结构有了解吗?了解 》》好,那就不问了。 >_<
如果出现了一条sql,执行时间比较长,你会从什么角度去考察?
从客户端连接开始考虑sql语句的整个执行过程,提醒要从多角度考虑问题
Redis
redis的zset了解吗。基础数据结构是什么。
缓存击穿和缓存穿透的区别是什么?
两者一开始概念搞混了哈哈哈哈哈。一开始讲错了,面试官笑着问我确定吗哈哈哈哈哈。后面讲对了
项目
项目中用到了singlefight,讲一下。 才了解到这是uber之前开源的库,目前已经放到了/x/sync包下面了。实现的很巧妙,不知道其他语言有没有类似的处理方案。
这点源码需要好好看一下,讲给面试官听
有验证过性能吗?》没有
consul的服务注册发现是怎么用的。
》这块讲错了,面试官指导了一下
部署过吗
》没有,是本地启的docker来调试
算法
lc77 组合题
秒了