【面经】网宿科技-Go后端开发实习-二面面经

bg:9本大二/主go/一段实验室打工经历 二面感觉问得深很多,面试官笑呵呵的很有压力

1. 项目深挖(短链接生成系统 - 架构设计与一致性)

  • 面试官: 请简单介绍一下这个短链接生成系统的核心流程。
  • 面试官: 你为什么引入 Redis?如果去掉 Redis 直接抗 5000 QPS,PostgreSQL 的瓶颈大概会出在哪里?
  • 面试官: 短链接生成的算法你用的哪种?如果是 Hash 算法,产生碰撞(Conflict)了你如何在代码层面解决?
  • 面试官: 谈谈你提到的一致性方案:先更新数据库,再删除缓存。
  • 面试官: 如果数据库更新成功,但删除缓存失败了,此时会有脏数据。除了重试机制,你了解“延迟双删”或者“监听 Binlog 异步删除”吗?
  • 面试官: 如果短链接的跳转流量突然暴增(缓存穿透/击穿),你的系统有做什么防范吗?

2. Linux 基础与系统排查

  • 面试官: 平时开发最常用的 Linux 命令有哪些?
  • 面试官: 具体用什么命令查看系统内存?free -h 里的 availablefree 有什么区别?
  • 面试官: 某个端口被占用,如何快速找到并 Kill 掉该进程?
  • 面试官: 现在线上服务器 CPU 突然飙升到 100%,你的排查步骤是什么?
  • 面试官: 如何使用 grep 查找日志文件中包含关键词 "Error" 的前后 10 行?
  • 面试官: 知道 chmod 的数字权限含义吗?755 代表什么权限?

3. Go 语言

  • 面试官: 既然二面了,我们聊聊底层。讲讲 Go 的 GMP 调度模型,为什么要有 P?
  • 面试官: 项目中你是怎么处理多个 Goroutine 协同工作的?(Context 或 WaitGroup)
  • 面试官:(深挖)Context 的 Done() 信号是怎么传递的?底层是什么数据结构?
  • 面试官: Go 的垃圾回收(GC)大致流程是什么?为什么会有 STW?
  • 面试官: 写代码时如何避免 Goroutine 泄露?

4. Docker 与云原生

  • 面试官: 岗位偏向容器平台,你平时 docker run -v-p 分别代表什么?
  • 面试官: 讲讲 Docker 的 Multi-stage build(多阶段构建)
  • 面试官:(追问)多阶段构建除了减小镜像体积,对代码安全性有什么帮助?
  • 面试官: 你知道 Docker 是利用 Linux 内核的哪些机制实现隔离的吗?(Namespace / Cgroups)
  • 面试官: 假如容器内的 Go 程序发生了 OOM(内存溢出),你应该去哪里看报错日志?
#寒假实习##发面经攒人品#
全部评论
蹲后续结果
点赞 回复 分享
发布于 今天 19:03 广东

相关推荐

12-26 23:10
门头沟学院 Java
1. 介绍一下面向对象2. arraylist和linkedlist的区别3. hashmap是线程安全的吗?concurrenthashmap做了哪些优化保证他是线程安全的?4. jdk1.8做了cas+sychronized的优化,为什么要做这种优化?5. cas解决不了什么问题?6. 往线程池提交一个任务,会发生什么过程?7. jvm的类加载机制?知道双亲委派模型吗?tomcat打破了双亲委派模型,为什么要打破他?8. redis实现缓存,缓存的key是什么?9. 什么是旁路缓存机制?写和查询的时候具体是怎么操作的?10. 为什么不能先删除缓存再更新数据库?11. 布隆过滤器和bitmap的区别?12. 四种事务隔离级别?13. 在可重复读下面innodb解决了幻读问题,是怎么解决的?14. 介绍一下mvcc15. 做一个sql的问题,分析执行的过程,应该对a表和b表加什么样的索引?16. spring中出现过事务注解失效的场景吗?为什么会失效呢?private和this调用 本质都是动态代理失效的问题17. mybatis接口的方法可以重载吗?为什么不可以重载?18. mq是解决什么问题?如何保证消息的可靠性?19. 怎么保证消息不被重复消费?回答用订单状态保证幂等性,反问除了订单状态保证幂等性以外还有什么可以保证幂等性吗?没答上来20. 为什么选择了rabbitmq?21. 死锁的四个必要条件?22. 有哪些页面置换算法?23. 解释一下tcp三次握手连接的过程,为什么要三次握手?24. 平常使用git的场景?25. 日常工作学习当中会使用ai大模型吗?有自己的cursor账号吗?举个使用ai大模型的例子?26. 算法题:力扣第143题重排链表,最开始不要求空间复杂度,用list装了一下节点过了,反问优化思路,回答先用快慢指针找到中间点,然后对后面的链表做反转链表,然后再进行拼接,可以把复杂度降到O(1)
查看26道真题和解析
点赞 评论 收藏
分享
迷茫的大四🐶:???啥意思,你放几张图片糊弄牛油们?
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务