file

技术一面 基础面试

一面是通过电话直接沟通

  • 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服务部署到线上了,发现有内存泄露,该怎么处理
  • 还有一些非常底层的问题

总结

  1. 腾讯对于基础部分是相当重视的,总体回答的还算可以
  2. 项目部分腾讯也是非常重视,从电话里面听出来有一个架构在面试我...
  3. 通过面试发现了自己的很多问题,还是要多多总结 公众号