技术一面 基础面试
一面是通过电话直接沟通。
- go的调度
- go struct能不能比较
- go defer(for defer)
- select可以用于什么
- context包的用途
- client如何实现长连接
- 主协程如何等其余协程完再操作
- slice,len,cap,共享,扩容
- map如何顺序读取
- 实现set
- 实现消息队列(多生产者,多消费者)
- 大文件排序
- 基本排序,哪些是稳定的
- http get跟head
- http 401,403
- http keep-alive
- http能不能一次连接多次请求,不等后端返回
- tcp与udp区别,udp优点,适用场景
- time-wait的作用
- 数据库如何建索引
- 孤儿进程,僵尸进程
- 死锁条件,如何避免
- linux命令,查看端口占用,cpu负载,内存占用,如何发送信号给一个进程
- git文件版本,使用顺序,merge跟rebase
技术二面 项目相关
通过腾讯会议,腾讯的两个大佬一起面试。
- 项目实现爬虫的流程
- 爬虫如何做的鉴权吗
- 怎么实现的分布式爬虫
- 电商系统图片多会造成带宽过高,如何解决
- micro服务发现
- mysql底层有哪几种实现方式
- channel底层实现
- java nio和 go 区别
- 读写锁底层是怎么实现的
- go-micro 微服务架构怎么实现水平部署的,代码怎么实现
- micro怎么用
- 怎么做服务发现的
- mysql索引为什么要用B+树?
- mysql语句性能评测?
- 服务发现有哪些机制
- raft算法是那种一致性算法
- raft有什么特点
- 当go服务部署到线上了,发现有内存泄露,该怎么处理
- 还有一些非常底层的问题
总结
- 腾讯对于基础部分是相当重视的,总体回答的还算可以
- 项目部分腾讯也是非常重视,从电话里面听出来有一个架构在面试我...
- 通过面试发现了自己的很多问题,还是要多多总结