0

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

 2 years ago
source link: https://studygolang.com/articles/35454
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

itmrtan · 4天之前 · 249 次点击 · 预计阅读时间 1 分钟 · 大约8小时之前 开始浏览    

算法题比较简单,输入输出都是基本功,刷过题的都会,最难也就是中等题中的简单题。 一面 面试官拿着我的简历, 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,高并发,分布式系统设计,这些八股文一定要心里有底。


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK