u1jodi1q 发表于 2024-10-12 22:51:10

「第十九期」虾皮社招后端面经


    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">算法题比较简单,输入输出都是基本功,刷过题的都会,最难<span style="color: black;">亦</span><span style="color: black;">便是</span>中等题中的简单题。</span></p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;">一面</h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">面试官拿着我的简历,</span></p><span style="color: black;">redis 和mysql <span style="color: black;">能够</span>用binlog 同步全量数据,<span style="color: black;">亦</span><span style="color: black;">能够</span>更新mysql后删除redis更新缓存</span><span style="color: black;">kafka 架构,WAL,一致性<span style="color: black;">保准</span>(p用pid,c用offset管理,broker用WAL和并发锁,partition、replica高吞吐),broker的并发锁,offset用特殊topic收集存在zookeeper里</span><span style="color: black;">es mysql用 mysql binlog同步的架构+同步<span style="color: black;">方法</span>,这个属于ETL的过程</span><span style="color: black;">hash表,jdk1.8后的hashtable<span style="color: black;">特别有</span>说头,数组+链表+红黑树+rehash都能展开来讲</span><span style="color: black;">一致性hash(dynamo的hash<span style="color: black;">方法</span>,2^64的hash空间,<span style="color: black;">每一个</span><span style="color: black;">设备</span>加入集群随机撒点,key hash后按顺时针找<span style="color: black;">设备</span>,<span style="color: black;">每一个</span>kv顺时针存在三个点上),怎么<span style="color: black;">处理</span>数据倾斜(nmk,n指加<span style="color: black;">设备</span>,m指撒<span style="color: black;">更加多</span>点,k要检讨partitionkey <span style="color: black;">或</span>key后加随机值)</span><span style="color: black;">mysql 索引</span><span style="color: black;">一个脑筋急转弯</span>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;">二面</h1><span style="color: black;">多线程多进程的区别(<span style="color: black;">由于</span>我都用c++写过,编程的模型完全不<span style="color: black;">同样</span>,<span style="color: black;">因此</span>花了很大篇幅解释),一致性hash</span><span style="color: black;">redis、多写的分布式一致性原理(这个我参考hdfs的分布式设计<span style="color: black;">方法</span>,读写锁,多段提交,基于codis<span style="color: black;">方法</span>的健康管理和hash)</span><span style="color: black;">高并发系统设计(redis、限流器、前端,层层拦截),照着秒杀系统的框架往里面套。</span>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;">三面</h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">boss的压力测试</span></p><span style="color: black;">hash表,一致性hash</span><span style="color: black;">设计库存服务的系统设计</span><span style="color: black;">表结构</span><span style="color: black;">一致性原理</span>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><span style="color: black;">非常多</span>问题<span style="color: black;">便是</span>为难而难,放平<span style="color: black;">心理</span>就行了。</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;"><span style="color: black;"><span style="color: black;">评估</span>:</span></strong></p><span style="color: black;">总的<span style="color: black;">来讲</span>还行,不会的就说不会,<span style="color: black;">例如</span>一面有问到kafka broker并发的时候加锁,<span style="color: black;">由于</span><span style="color: black;">无</span>看过源码<span style="color: black;">因此</span>不<span style="color: black;">晓得</span>有这么回事,但最后的<span style="color: black;">评估</span>还<span style="color: black;">能够</span>。</span><span style="color: black;">一二面都有算法题,难到是不难。</span><span style="color: black;">本来听说要面golang的,准备了垃圾回收,tcmalloc,内存管理,协程调度,context的内容,<span style="color: black;">然则</span>一个都没考,很蛋疼。</span><span style="color: black;">谷歌三驾马车,一致性hash,redis,mysql,高并发,分布式系统设计,这些八</span>




1fy07h 发表于 2024-10-15 11:08:42

“板凳”(第三个回帖的人)‌

m5k1umn 发表于 2024-10-16 07:04:24

你的见解独到,让我受益匪浅,非常感谢。
页: [1]
查看完整版本: 「第十九期」虾皮社招后端面经