目的涌现研发实习生golang面经
## redis
### 都用过哪些指令?具体一些
我的项目中redis除了分布式锁的使用,就剩下一个验证码的存储了,所以我就说了加key、设置key过期时间的
### 分布式锁的流程
问:拿不到锁的业务怎么办?
> 如果别的业务拿不到锁就会自旋or进入队列等待和超时。
问:这样的话,会导致并发性能降低,有什么解决方法?
> 我不会,瞎说的:用乐观锁和版本控制降低锁的颗粒度。这里同学告诉我setnx就是乐观锁TAT
问:redis怎么实现乐观锁?
> 依旧不会,于是让我讲了mysql的乐观锁
## 项目
拷打了很久的项目,甚至让我投屏演示项目,我的docker有个一直卡着没启动好,耽误了10分钟,而且我投屏投错了,让面试官看着空白划鼠标了5分钟,汗流浃背了,好在最后启动成功了,挑了一个接口让我详细讲下如何写的。
### 服务发现&负载均衡
用的consul和nacos实现的,我自己写了个轮训的算法实现负载均衡,问我还有什么算法,我答了加权,保持最小连接数,urlhash,iphash,最短连接时间
### 链路追踪怎么实现的?怎么找到性能瓶颈怎么解决?
用的Jaeger,当时死活想不起来叫什么。
找到瓶颈后,如果是路由方面的瓶颈,尝试考虑扩容,如果是数据的瓶颈,尝试redis存储热点数据
### 测试和保证系统稳定性怎么做的?
用的接口管理平台,接口管理平台自带一个压测
### grpc+protobuf相比传统的http+json优势在哪?
grpc可扩展性很强,再多台服务器部署扩容几乎是无痛的,只要做好服务发现和负载均衡。
而protobuf相比json传输效率和压缩性能更强
### jwt相比cookie+session优势在哪?
我只说出来了jwt的优势,没说出cookie+session的劣势。
### 讲一下gmp?协程和线程的区别
gmp我讲完后,觉得我只是解释了3个词语分别是什么,没有讲到精髓。我又补充了窃取g,以及p队列初始化和流程,下来查看笔记觉得少答了抢占式调度吧
我提到协程锁用户级轻量的线程,切换性能更高,并发性更强,并且由用户调度,对内核无感
## 实习经历
问我了都做了什么?在实习的不同阶段都有什么不同收获,我没理解面试官的意思,把项目讲到比较细节的部分,他打断我说主要说阶段性的,以周或者月为单位。我就聊了下。
## 总结
依旧没有按照顺序写,想到什么写什么。
拷打了很多项目,我发现我很多时候,用到了xx技术,只是单纯看的教程和找的代码用到了,并不清楚为什么要用,以及相比于同类技术的优缺点在哪,这也是我接下来一个思考的方向,面试官给到了一些压力,也让我认识到了我的不足,八股方面特别是redis的,感谢面试官。
### 都用过哪些指令?具体一些
我的项目中redis除了分布式锁的使用,就剩下一个验证码的存储了,所以我就说了加key、设置key过期时间的
### 分布式锁的流程
问:拿不到锁的业务怎么办?
> 如果别的业务拿不到锁就会自旋or进入队列等待和超时。
问:这样的话,会导致并发性能降低,有什么解决方法?
> 我不会,瞎说的:用乐观锁和版本控制降低锁的颗粒度。这里同学告诉我setnx就是乐观锁TAT
问:redis怎么实现乐观锁?
> 依旧不会,于是让我讲了mysql的乐观锁
## 项目
拷打了很久的项目,甚至让我投屏演示项目,我的docker有个一直卡着没启动好,耽误了10分钟,而且我投屏投错了,让面试官看着空白划鼠标了5分钟,汗流浃背了,好在最后启动成功了,挑了一个接口让我详细讲下如何写的。
### 服务发现&负载均衡
用的consul和nacos实现的,我自己写了个轮训的算法实现负载均衡,问我还有什么算法,我答了加权,保持最小连接数,urlhash,iphash,最短连接时间
### 链路追踪怎么实现的?怎么找到性能瓶颈怎么解决?
用的Jaeger,当时死活想不起来叫什么。
找到瓶颈后,如果是路由方面的瓶颈,尝试考虑扩容,如果是数据的瓶颈,尝试redis存储热点数据
### 测试和保证系统稳定性怎么做的?
用的接口管理平台,接口管理平台自带一个压测
### grpc+protobuf相比传统的http+json优势在哪?
grpc可扩展性很强,再多台服务器部署扩容几乎是无痛的,只要做好服务发现和负载均衡。
而protobuf相比json传输效率和压缩性能更强
### jwt相比cookie+session优势在哪?
我只说出来了jwt的优势,没说出cookie+session的劣势。
### 讲一下gmp?协程和线程的区别
gmp我讲完后,觉得我只是解释了3个词语分别是什么,没有讲到精髓。我又补充了窃取g,以及p队列初始化和流程,下来查看笔记觉得少答了抢占式调度吧
我提到协程锁用户级轻量的线程,切换性能更高,并发性更强,并且由用户调度,对内核无感
## 实习经历
问我了都做了什么?在实习的不同阶段都有什么不同收获,我没理解面试官的意思,把项目讲到比较细节的部分,他打断我说主要说阶段性的,以周或者月为单位。我就聊了下。
## 总结
依旧没有按照顺序写,想到什么写什么。
拷打了很多项目,我发现我很多时候,用到了xx技术,只是单纯看的教程和找的代码用到了,并不清楚为什么要用,以及相比于同类技术的优缺点在哪,这也是我接下来一个思考的方向,面试官给到了一些压力,也让我认识到了我的不足,八股方面特别是redis的,感谢面试官。
全部评论
相关推荐
11-18 14:17
门头沟学院 Java 点赞 评论 收藏
分享
查看1道真题和解析
