2.7 春招 教育初创三面 Golang 1h40min

面试官人非常好, 在我面试的里面是一个比较重实际 同时自己了解底层的原理, 结束时道新年快乐.

八股(闲聊):

  • 学了什么课, 有编译原理 计算机组成吗(没有)
  • 为什么要写Raft, 有什么应用
  • Kafka使用了Raft吗, 我说前面用zk, 后面KRaft, 问我确定吗我说是
  • Kafka中的KRaft与Raft什么不同(面试官觉得差不多, 我说了一些ISR)
  • Kafka保证的是CP还是AP, etcd呢(我说看参数)
  • 我看RPC框架有一个reqID, 怎么实现幂等性(我说db或者redis写id)
  • 如果多个机器同时收到reqID怎么保证幂等性, 我说没有考虑
  • 那考虑一下呢, 我说加锁或者撤销写入的id
  • 如果多个请求同时打, 延迟到下一次失败重试吗(是)
  • 这种消耗带宽了, 怎么优化(我说id标记两个阶段, 1阶段循环等, 这时候已经很难绷住了)
  • 公司有微服务监控吗, 怎么重试一个流程
  • Go的Cond和select用来干嘛的, 可以相互替换吗(含糊其辞)
  • Cond chan可以共用吗(我说不可以 一个要mutex)
  • select怎么监听的多个chan, 阻塞的时候会调度吗()
  • 我说会, 那谁来通知这个读写事件(可能sysmon??绷不住了, 我说不会, 终于换问题了)
  • TCP和UDP服务同时用一个端口可以运行吗, 会有什么问题(我说不会)

手撕:

  • 本地IDE写一个server监听端口, 一个client读tcp字节流(api不熟, 但是写出来了)

继续八股:

  • tcp建立的过程中, os层面怎么做的处理(我说了一些fd和处理句柄吧可能)
  • 建立链接之后传输完成需要做什么处理(我defer关闭了一些链接)
  • 直接defer会不会有什么问题(我不太会, 说可能panic, 但是也会关闭)
  • 判断代码执行结果: 一个go协程里面赋值 + Unlock, 主协程Lock + print. (我答错了, 跑了一下说原因)
  • 怎么修改, 我改成了wg, 他说用Lock怎么实现
  • 我Lock两次成功了, 他说会不会有什么问题....
  • SELECT a FROM b WHERE c IN (1,2,3) AND d LIKE 'str%' ORDER BY e DESC 怎么加索引....(不怎么会 我说d a, 讨论了几分钟)
  • 这一条SELECT在MYSQL里面怎么执行
  • 你刚说的宏观层的优化器 存储引擎, 这些子句具体怎么执行(...不会)
  • 建立索引, 是否走索引是第一考虑因素吗...(我说是, 他说也可以考虑快速缩小结果集)

反问:

  • 规模: 研发总共40人
  • 三面过后还有技术面吗: 还有一面😅
全部评论
😅我们公司,技术和待遇没得说,对标大厂了
2 回复 分享
发布于 02-15 21:38 湖南
我写完tcp那个的时候, 他说嗯...写出来就不错了, 我以为没了, 然后又来了半个小时八股
点赞 回复 分享
发布于 02-07 16:10 湖北
可以求问是哪个公司嘛!想投一下其它岗
点赞 回复 分享
发布于 03-18 23:28 四川

相关推荐

hso_:哈哈哈哈哈哈我没offer一样在同一道题开喷了
投递深圳同为数码等公司10个岗位
点赞 评论 收藏
分享
羊村懒哥:刚想骂一看是友军对不起
点赞 评论 收藏
分享
5 10 评论
分享
牛客网
牛客企业服务