【第十九期】虾皮社招后端面经

itmrtan · · 907 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

907 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传