第13章 一面:技术经理(2/2)
请关闭浏览器的阅读/畅读/小说模式并且关闭广告屏蔽过滤功能,避免出现内容无法显示或者段落错乱。
这个问题有点深。林晨略一思索,答道:“有的。我们当时设计了两层保障。第一层,所有扣减操作除了写Redis,还会异步发消息到MQ,由另一个服务落库作为‘操作日志’。第二层,有定时任务,在每天业务低峰期,跑批将Redis里的库存快照与数据库里的‘操作日志’进行核对,如果发现不一致,以数据库日志为准进行修正,并报警。虽然不能做到强一致,但保证了最终一致和业务可追溯”。
“代价是延迟修正和数据短暂不一致的可能”。王磊指出。 “是的”,林晨点头,“这是权衡的结果。秒杀场景下,性能和高可用优先级高于强一致。我们通过设置合理的库存安全阈值和监控,将风险控制在可接受范围。实际运行两年,未因此产生过重大资损”。
王磊不置可否,接着问:“好。下一个问题,还是这个系统,你提到订单查询慢,优化后QPS提升五倍。具体优化手段”?
“主要是数据库层面”。林晨进入更熟悉的领域,“当时订单表数据量过亿,查询用户历史订单的接口响应很慢。我们分析了慢查询日志和SQL执行计划,发现几个问题:一是查询条件经常组合变化,索引命中率低;二是存在大量回表查询;三是有些关联查询写法不优”。“怎么解决的”?“第一,针对核心查询路径,我们重新设计了联合索引,考虑查询频率和区分度,比如把‘用户ID+下单时间’作为最左前缀。第二,对一些高频且字段固定的查询,比如只查订单号、状态、金额,我们做了覆盖索引,避免回表。第三,优化了部分JOIN,能拆成多次查询用程序合并的,就拆开,减少数据库单次压力。第四,对非实时要求的查询,引入了Esticsearch做二级索引”。林晨顿了顿,补充道,“当然,前提是业务方同意接受部分查询的轻微延迟”。 “Esticsearch和MySQL的数据同步怎么做的”? “基于blog,用al监听变化,推送到消息队列,再由消费者同步到ES”。林晨回答得很流利,这是他们当时实际采用的方案。
王磊的问题开始变得更开放:“如果现在让你重新设计这个库存中心,考虑到如今的技术选型更多样,你会有什么不同的思路?或者觉得当初的设计,在现在看有什么明显的不足”?林晨沉默了几秒。这个问题考察的是技术演进思考和复盘能力。“如果现在设计”,他缓缓开口,“我可能会更倾向于考虑使用分布式事务框架,比如Seata的AT模式,来尝试简化‘预扣’和‘最终扣减’之间的状态管理,虽然会引入一定的复杂度,但可能让流程更清晰。另外,当时我们对Redis的使用比较基础,现在可能会更深入地利用Redis的数据结构,比如用Sorted Set来管理不同优先级仓库的库存水位,实现更动态的路由。不足……当初对监控和可观测性投入不够,很多问题靠报警和人工查日志,现在肯定会把链路追踪、指标埋点做得更完善”。
王磊的脸上似乎掠过一丝极淡的认可,但很快又恢复了平静。“好。技术问题先到这里。聊聊你个人。看你简历,十年都在同一家公司,做跨境电商。为什么现在想换到金融支付领域?你觉得这两个领域的后端技术,核心差异在哪里”? 林晨知道这是考察动机和行业理解。“想换领域,一是个人职业发展的寻求,想接触更复杂、对稳定性和数据一致性要求更高的系统;二是对支付技术本身有兴趣”。他斟酌着用词,“核心差异,我个人理解,电商后端更侧重于处理高并发、大流量下的业务正确性和用户体验,容忍一定程度的最终一致。而金融支付,尤其是资金处理核心,对强一致性、事务性、安全和审计追溯的要求是极高的,可以说‘稳定压倒一切’,任何资金差错都是不可接受的。技术挑战的侧重点不同”。 “你对Web3、区块链有了解吗?我们公司也有一些相关方向的探索”。王磊突然抛出一个问题。 林晨心里咯噔一下。这正是他的知识盲区之一。他如实回答:“了解一些基本概念,比如去中心化、智能合约,但缺乏深入的实践。我过去的技术栈和业务主要集中在传统的互联网后端领域”。王磊点了点头,没有深究,似乎只是随口一问。“我这边问题差不多了。你有什么想问我的”?林晨想了想,问了两个问题:一是这个技术经理岗位主要负责的具体业务线和技术团队规模;二是团队目前面临的主要技术挑战或正在推进的重点项目方向。 王磊的回答简洁务实:负责支付核心链路中的一个中台团队,约十人;当前挑战主要是系统老旧模块的重构和向云原生架构迁移的平稳过渡。 “今天的面试就到这里。后续如果有进一步安排,HR会联系你”。王磊说完,点了点头,便结束了视频通话。 屏幕暗下,林晨靠在椅背上,长长吐了一口气。整整四十五分钟,问题一个接一个,几乎没有停顿。他感觉像跑了一场技术马拉松。 复盘刚才的表现:项目细节讲得应该还算清楚,性能优化的问题答得比较扎实,都是实际干过的活儿。最后那个“重新设计”和“差异分析”的问题,自己发挥得也算中规中矩。Web3那个问题露怯了,但好在对方没追问。 “感觉……还行”?林晨自言自语,心里却没什么底。王经理全程表情变化很少,很难看出他的倾向。这种技术经理的面试,往往更看重解决实际问题的思路和深度,而不是单纯的知识点背诵。 他起身倒了杯水,看着窗外渐渐暗下来的天色。房贷提醒短信静静地躺在手机里,这个月的还款日又近了。大哥林枫虽然说了可以帮忙垫,但那终究不是长久之计。这次面试,成了他失业后第一个真正触及到技术核心层面的机会。 等待,又是焦灼的等待。他不知道自己这份“感觉还行”,在对方那里能打多少分,能否换来下一轮面试的入场券。
鹏城的夜幕降临,无数写字楼依然灯火通明,那里有无数个像王磊一样的面试官,决定着无数个像林晨一样的求职者的下一步方向。 他只能等,并在等待中,继续投出下一份简历。