24届暑期 阿里云 云原生 C++
今年的暑期应该要开了,分享一下去年面的造福一下社会
一面
- 自我介绍
- malloc/free和new/delete的区别
- page cahe的数据如何刷盘(脏页回写,写时复制)Linux内核之 页高速缓存与页回写 - orange-C - 博客园
- 申请页缓存→缺页中断
- 缓存淘汰→页置换算法
- 知道脏页吗
- select、poll、epoll有什么区别
- 水平触发和边缘触发
- TCP三次握手过程
- 前两个报文不可以携带数据,第三个报文可以携带数据
- 为什么不能两次握手
- 每次握手失败了,会发生什么?
- TCP四次挥手过程
- 允许第二个FIN包重发一次,保证被动关闭方正确的关闭
- 三次握手时发送和接收端状态如何转换?
- raft选主过程
- 两个candidate收到相同选票:等待选举超时,任一节点重新成为candidate并发起投票请求直到选出leader
- candidate被告知有其他人当选:变为Follower
- 任期在选举中有什么作用
- 线性一致性介绍一下
- CAP介绍一下
- 一般选择保证其中的哪两个,一般舍弃哪一个
- 最终一致性是什么
- 为什么必须选P
- 两阶段提交
- ceph了解吗
- 一致性哈希了解吗
- 你这个项目收获最大的地方
- RAII怎么理解
- 智能指针是线程安全的吗
- 如何设计智能指针
- shared_ptr引用计数里面除了引用还保存了什么信息
- C++ pimpl了解吗,有什么好处
- 算法题:翻转二叉树 二叉树最近公共祖先 LRU缓存 动态线程池
二面
- 分布式事务介绍下
- 锁相关(种类、特点、应用场景)
- 乐观锁、悲观锁是啥
- 线程池(工作原理、如何存储多余任务、如何执行任务)
- 虚拟内存谈一下
- TCP怎么保证有序(GBN,SR)
- InnoDB与分布式存储引擎的区别
- 死锁怎么避免
- LRUCache的设计思路,如果要改成支持并发的应该怎么办?
- 从输入网页到打开一个网页,其中发生了什么
- 如果是https的情况呢?客户端获取验证公钥,加密信息后发送给服务端,服务端私钥解密验证
- CAP和Raft? 经典分布式八股
- Kafka为什么那么快 sendfile
- 零拷贝技术介绍一下
- PageCache
- 数据库事务原理 维护一个redoList和undoList