page contents

面经||【阿里巴巴】Go岗-新鲜的大厂面经~

第一面 1.请说一下mysql的事务隔离级别。 由于我对这里比较熟悉,所以主要讲了一下“write skew“和“Phantom“,以及”repeatable read“和”snapshot isolation“,面试官显然对这部分了解不多,然...

attachments-2022-02-21jZrTCh6210422fd6864.png

第一面

1.请说一下mysql的事务隔离级别。

由于我对这里比较熟悉,所以主要讲了一下“write skew“和“Phantom“,以及”repeatable read“和”snapshot isolation“,面试官显然对这部分了解不多,然后我又讲了一下mysql的mvcc和加锁策略,以及tidb的乐观事务模型。接着说了一下数据库如何实现ACID的,以及事务的调度算法。

参考《A Critique of ANSI SQL Isolation Levels》和《数据库设计与实现》。

2.简要说一下kafka。

主要回答了一下broker,分区,isr,储存方式,零拷贝。然后扯了一下zookeeper的设计以及zab协议。参考《Kafka权威指南》《从Paxos到Zookeeper分布式一致性原理与实践》和《ZooKeeper: Wait-free coordination for Internet-scale systems》

3.算法题,leetcode 中等难度通过率31%

在指导下做出来了。

4.说一下go协程设计

由于自己用c实现过协程,所以答的很随意。讲了一下函数调用约定,栈布局,上下文切换,x86寄存器,又讲了一下用gcc的”-finstrument-functions”。然后讲了一下go的调度思路。

参考go源码runtime.schedule

5.说一下epoll

讲了epoll跟select的区别,然后回答了et和lt的区别以及使用场景。又回答了一下go的设计思路。

参考man 7 epoll和go源码 runtime.netpoll

第二面

1.讲一下raft算法

讲了一下leader选举,日志复制,应用到上层状态机这三部分。

参考《In Search of an Understandable Consensus Algorithm》

2.讲一下cap定理

回答了一下概念。然后结合 mysql(同步复制,异步复制),kafka(isr),etcd(raft),zookeeper(zab)讲了一下各自是什么系统。

参考《ddia》

3.算法题 链表排序

先用插入排序做出来了,

让用快排做,不会做。

然后问时间复杂度,这个回答错了,

接着又让证明,结果又证明出来了个logN…

4.又问了一道算法题

很水的题目,忘记了。

5.讲一下fork原理。

背了几个步骤,回答了一下。

参考《深入理解linux内核》

6.如何设计一个朋友圈。

没啥思路,在指导下写出来了。

第三面

1.zab,raft,paxos协议的区别。

回答了一下raft,然后有点蒙也不知道回答什么。

2.讲一下canal

说了一下binlog的格式。

3.讲一下协程设计

同一面

4。一道算法题

跟数列有关的算法题,可能是想考察dp的,我直接推出了通项公式,代码也没写

5.go的hashmap如何实现的

讲了一下均摊扩容,然后问了一些很细节的问题,估计是看的某个issue。

6.实现一个hashmap

。。。。写了增删改查,扩容不会写。

以上就是本次分享内容,更多大厂GO开发工程师面试经验持续关注六星社区

想要高效学习,指路微信公众号——【python编程学习圈】每日分享学习干货,关注即可免费领取整套Python零基础到入门资料及学习教程,走过路过,千万不要错过!!快行动起来!!

attachments-2022-05-ZwUUz0Co628f2e3079c7b.jpeg


0 条评论

请先 登录 后评论
小柒
小柒

1474 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章