百度运维开发一到三面一面:1. kafka怎么保证可靠性2. 如何保证消息的可靠性?6. 消费消息的顺序性保证7. Java的Nio2. concurrentHashMap3. Java内存管理4. 如何避免FullGC5. Java内存模型6. volatile;
二面:1. broker的单点问题2. 如何保证消息发送的一致性3. TCP的四次挥手,如果处于 FIN_WAIT1状态的话,服务端读取数据,会出现什么状态?? 1) 当client想要关闭它与server之间的连接。client(某个应用进程)首先调用close主动关闭连接,这时TCP发送一个FIN M;client端处于FIN_WAIT1状态。 2) 当server端接收到FIN M之后,执行被动关闭。对这个FIN进行确认,返回给client ACK。当server端返回给client ACK后,client处于FIN_WAIT2状态,server处于CLOSE_WAIT状态。它的接收也作为文件结束符传递给应用进程,因为FIN的接收 意味着应用进程在相应的连接上再也接收不到额外数据; 3) 一段时间之后,当server端检测到client端的关闭操作(read返回为0)。接收到文件结束符的server端调用close关闭它的socket。这导致server端的TCP也发送一个FIN N;此时server的状态为LAST_ACK。 4) 当client收到来自server的FIN后 。 client端的套接字处于TIME_WAIT状态,它会向server端再发送一个ack确认,此时server端收到ack确认后,此套接字处于CLOSED状态。4. 消息的去重;
三面:1. 消息的事务 保证消息的一致性二阶段提交2. Linux系统的文件结构3. 多块硬盘如何拼成一块硬盘软件层面:LVM硬件层面:RAID(两个都是面试官给出答案)4. 虚拟主机(腾讯云)如何做到用户切分5. TCP表结构,RST与SYN,keepAlive6. 大端序与小端序7. NIO服务端如何编程实现8. 算法题,很长链表上,存放了学生信息(id,学号),在ID,学号均无序的条件下,根据给定的ID,如何快速的找到学号,根据学号又如何快速找到Id?9. AVL树10. 设计模式11. Java虚拟机优化实战
面试感受:很好;面试难度:有难度;面试来源:内部推荐