无手撕 面试官迟到三分钟(这应该不算迟到)以为会问八股,结果全是项目引申的,麻了 有的面试官不问我这玩具项目呜呜+在日常实习就没看,自己介绍都没讲清楚1. 线程通信方式 oom 线程安全 死锁2. 分布式事务 如果c超时没反应, 咋处理。直接通知回滚的话,可能有c先处理回滚的命令,后面又执行了本地事务(c查看本地事务的状态 执行中就不回滚 还是咋处理)3. 协调者挂了 咋办 项目: 库存变化流程 redis回滚库存为啥会超卖 mq重投db会不会超卖 (幂等判断和回滚在一个事务中)4. 分库和分表的区别(分库一般是多个实例解决高并发,分表是单表数据量比较大 分库和分表很像,都是按分片键路由)基于买家id分表分库的话,卖家想查询怎么办(binlog 卖家id分片)自己说话要坚定,不能弱弱怂怂的 晚上一看,挂了感觉是除了分布式事务那两问题基本都能回答个大概,可能"大概"这种程度不行吧,太久没看了,自己的项目都不熟了,分布式事务确实就学了一点 看见我的项目都想吐,重复看的东西。。#毕业后不工作的日子里我在做什么#呜呜呜呜,好菜,本科学历不太行感觉银行国企也不太稳麻了3. 我搜的是1.TCC 2.本地消息表 3.多节点选举机制(如Raft协议)实现高可用,避免单点故障 三阶段提交只是缓解了单点故障问题 (TCC和本地消息表根本就没有协调者所以没有单点故障 没有往这上面想 一直在绕三阶段提交)2. #### 1. 参与者C超时无响应**解决方案:**- **事务状态查询机制**:协调者先发起事务状态查询(3PC中的CanCommit阶段)- **异步补偿机制**:记录操作日志,超时后通过定时任务重试事务查询- **最终一致性兜底**:若长时间无响应,记录异常事务日志人工介入- **示例流程**: 1. 协调者发送prepare请求 2. 参与者C超时未响应 3. 协调者发起事务状态查询请求 4. 若C本地事务已提交 -> 继续提交其他参与者 5. 若C未提交/回滚 -> 发起全局回滚(我前面讲的RMQ的事务消息 也是反查本地事务状态 这没回答出来)4. ### 二、分库分表核心区别| | 分库 | 分表 ||----------|-----------------------------|---------------------|| 拆分维度 | 数据库实例级别 | 单表结构级别 || 核心目标 | 降低单点压力,提升并发处理能力 | 解决单表数据量过大问题 || 典型场景 | 电商系统买家库、订单库分离 | 用户表按月分表 || 实施难度 | 需要处理分布式事务、跨库join | 主要处理SQL路由 |