Markdown Note
4.20字节(本地生活)二面
最近更新:2026/04/29
1、事物的2阶段提交和3阶段提交有了解吗 TCC:binlog和redolog;以及分布式事务 优缺点: 有什么方案升级: 柔性表写入表 3阶段
2、TCP的网络拥塞 https://chatgpt.com/s/t_69e61a71fab081918aa0b3efafc5cbb1 这个拥塞窗口是什么数据结构 什么样的数据结构定义这个滑动窗口 TCP 的拥塞窗口不是一个具体的数据结构,它只是一个整数变量 cwnd,用来限制发送窗口大小。真正的数据存储在 TCP 发送缓冲区(发送队列)(通常是链表或环形缓冲区),通过 snd_una 和 snd_nxt 两个序号指针与 cwnd 共同形成逻辑滑动窗口。
在 Linux 内核中(struct tcp_sock):
struct tcp_sock {
u32 snd_una; // 最早未确认序号
u32 snd_nxt; // 下一个要发送的序号
u32 snd_wnd; // 对端接收窗口 (rwnd)
u32 snd_cwnd; // 拥塞窗口 (cwnd)
}
这里你可以看到:
cwnd 只是一个:u32 snd_cwnd,只是一个整数。
真正存数据的是:
发送缓冲区 (send buffer)
通常是:
- 链表(Linux)
- 环形缓冲区
- sk_buff队列(Linux)
Linux TCP:
sk_write_queue (未发送)
sk_send_head (正在发送)
retransmit_queue (重传队列)
结构类似:
|----已确认----|----已发送未确认----|----可发送----|----未发送----|
^ ^ ^ ^
snd_una snd_nxt snd_una+cwnd write_tail
这里:
窗口大小 = cwnd
只是限制:snd_nxt - snd_una <= cwnd
3、Java线程池 为什么核心线程用完了不直接new新的最大线程池,而是中间用等待队列
4、工单模块有多少核心表 工单核心表、工单扩展表、评价表、业务数据表
评价的意义是什么,解决了什么问题(什么业务问题)?
5、评价好与不好的意义是什么,统计意义还是什么
6、做这个工单的评价表意义是什么,租户为什么要看这个 主要是对飞书内部,租户不看 衡量服务质量,用于排序、考核、告警、优化资源分 业务场景:识别高风险客户、工单优先级调整、低分工单告警、售前人员质量排名考核 7、这个模块的业务目标:
8、实习期间遇到过什么困难 同步链路,主要的难点
9、写程序:连续递增的差值递增的最长连续子数组 dp 其中pre差值需要每次中断时清零
总结: 1、业务意义掌握 2、2PC和3PC 3、TCP滑动窗口的数据结构?缓冲区链表+snd_una 和 snd_nxt 两个序号指针与 cwnd 共同形成逻辑滑动窗口