编雪花算法圆谎

现在想起来还心跳加速!面试时为了显得自己懂分布式,硬吹了个牛,被面试官追问到差点翻车,最后靠临场瞎编居然圆回来了,堪称我秋招最极限的 “圆谎现场”!
当时为了让简历好看点,把之前跟着学长做的项目写成了 “分布式系统”—— 其实就是个简单的 Web 项目,数据存储全靠 MySQL 自增 ID。但我知道分布式系统绕不开分布式 ID,就特意背了雪花算法的八股文,简历上直接写 “采用雪花算法生成分布式 ID,保障数据唯一性”,想着面试时背一背流程,面试官应该不会深究。
结果面试那家公司的技术面,面试官一眼就盯上了这个点。我按准备好的八股文,从时间戳、机器 ID、序列号巴拉巴拉背得贼溜,还暗自庆幸 “这波稳了”。没想到面试官突然打断我:“你们项目的订单量我看简历上写的日均几千,不算很大啊,为什么非要用雪花 ID?用 MySQL 自增 ID 完全够了,还不用处理时钟回拨这些问题。”
我当时人都傻了!大脑瞬间一片空白,脸唰地就憋得通红,手心全是汗 —— 总不能说我是为了简历好看瞎写的吧?情急之下我脱口而出:“这个设计主要是学长定的,我当时负责的是业务逻辑实现,具体为啥选雪花算法,我没细问……” 说完我自己都觉得离谱,心里直呼 “寄了”,这回答跟没说一样,肯定要被看穿了。
没想到面试官没接着追问这个,反而话锋一转:“那我再问你,你们系统有主库和冷备库,冷备库存的是历史数据,如果查询的日期数据跨越了主库和冷备库,怎么处理?” 这问题又把我问懵了,我们项目根本没做冷备库,纯纯是我简历上吹的!
就在面试官盯着我等回答的几秒钟里,我脑子飞速旋转,突然灵机一动,把两个问题绑在一起圆:“其实选雪花算法也和跨库查询有关!我们冷备库存储的是上一次数据迁移前的所有数据,迁移时会记录当时最大的雪花 ID—— 因为雪花 ID 里包含时间戳,查询的时候先根据查询日期判断对应的雪花 ID 范围,就能知道数据在主库还是冷备库。如果跨越了两个库,就分别查询主库和冷备库的数据,最后合并返回,这样效率比全量扫描高很多。”
我说得语速飞快,眼睛都不敢直视面试官,心里祈祷 “千万别拆穿我”。结果面试官听完居然默默点头,还若有所思地说 “哦,这样考虑确实合理”,然后就接着问下一个问题了!我当时心里的石头瞬间落地,后背都被冷汗浸湿了,强装镇定往下答,结束后走出面试间,腿都有点软。
现在回想起来,真的是极限操作!那套说辞完全是我临场瞎编的,连我自己都不知道逻辑通不通,居然真的蒙混过关了。后来拿到 offer 的时候,还特意去补了雪花算法和跨库查询的知识,生怕入职后露馅。只能说面试吹牛皮有风险,下次再也不敢瞎写简历了,就算吹也要提前把逻辑圆好,不然真的会翻车!
#你面试时吹过最大的牛#
全部评论
太强了
点赞 回复 分享
发布于 01-07 17:35 上海

相关推荐

01-29 19:15
已编辑
有赞_前端开发工程师
1.12字节一面(1)自我介绍(2)询问项目基本情况(3)八股(4) 手写lru+观察订阅1.13通知过了1.13腾讯一面先给了20分钟写五道手写题,我写了3道题就没时间了,剩下两题说思路,大概就是用两种方法实现去重,手写promiseall,将参数转化成json结构,实现赋值却无法改变原本的值,实现打字机效果(1)自我介绍(2) 询问项目基本情况,了解整个项目框架(3) 噩梦开始,问的应该算八股,问到不会为止最新版本的ts是否有所了解pnpm和npm的区别,知不知道幽灵依赖,原理是什么cursor为什么可以同时执行多个工作流,底层原理是什么,git worktree有了解过吗,他是物理隔离还是逻辑隔离,最多执行多少个工作流ts的基本类型的副作用webpack和vite的区别,你还知道哪些构建工具,vite是基于什么构建的,那他是怎么处理cjs的目前还没挂我,不知道为什么,每题都问到不会为止1.14字节二面(1)自我介绍(2) 然后问项目是怎么处理问题的,我就说打点看日志,debugger这些定位问题,然后说了一个如何解决webp在ios的兼容问题(3) 然后写了一个树的直径,要自己运行➕定义结构,以及输入,他说结构有点瑕疵,但是算法是对的,手写了一个异步并发器1.15通知总体面评不错,但认为项目深度不够,没过目前的情况手上有一个上市制造业的offer,已经发offer,17*13+包吃住,入职时间是1.281.22 有赞一面1.26 有赞二面1.27 有赞三面1.28收到了有赞的offer以为要去制造业了,没想到还有转机,2.3入职
查看19道真题和解析
点赞 评论 收藏
分享
评论
3
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务