📣 Back to School开学季 - VIP通行证5折优惠!蓝莓、Offer多多同步优惠
楼主: 无量塔
跳转到指定楼层
上一主题 下一主题
收起左侧

[经验总结] [抛砖引玉] System Design的个人见解和一些例子

   
全局:
可以和楼主约mock嘛🥹🥺🥺
回复

使用道具 举报

🔗
 楼主| 无量塔 2022-12-28 03:10:09 | 只看该作者
全局:
本帖最后由 无量塔 于 2022-12-27 11:12 编辑
anonymousturtle 发表于 2022-12-24 16:52
感谢lz分享!

可以请问一下top k的正确解法吗?有没有什么比较好的参考资料?谢谢

这个问题一般面试会选择Lambda或者Kappa architecture来回答,目前网上好像没什么很好的资源。
可以参考这些资料学习:
http://vda-lab.github.io/2019/10/lambda-architecture
https://www.kai-waehner.de/blog/ ... acing-batch-lambda/
https://www.cnblogs.com/xiaodf/p/11642555.html
https://www.uber.com/blog/kappa- ... -stream-processing/
https://blog.allegro.tech/2020/01/design-for-failure.html

然后这里有一个Lambda的例子,给了一个直接在cassandra里生成若干分钟内的Top K result的。
https://github.com/apssouza22/lambda-arch

面试的时候需要注意回答你要存什么样的和传输哪些数据,什么时候做aggregation,window怎么定义的,result要怎么存,什么时候应该做recalculation。在拿Top K result的时候可以思考一下究竟是pre-compute存入数据库,还是实时计算等等。Infra可以学习一下Kafka,Hadoop,Flink,Spark Streaming,AWS Kinesis,AWS Athena,Elastic Search。

有一个坑就是,sketch算法不要乱答。我建议是除非面试官问到或者本身系统有资源上的限制才会考虑sketch。YouTube Top K给的例子上来就把Lambda的speed layer用sketch代替很容易踩坑。

评分

参与人数 1大米 +1 收起 理由
anonymousturtle + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
HelloWorld258 2022-12-29 12:06:52 | 只看该作者
全局:
本帖最后由 HelloWorld258 于 2022-12-28 20:32 编辑
anonymousturtle 发表于 2022-12-24 16:52
感谢lz分享!

可以请问一下top k的正确解法吗?有没有什么比较好的参考资料?谢谢

尝试回答一下,这题我面试遇见过4 - 5次了。一般都是结合top k most hit endpoints/top k products from N endpoints/products。总结下来就是QPS会很大,但是总数N不会很多,内存可以轻松存下来。

top k 问题一般的考点就是real time rough estimate vs offline accurate result。

计算精确值的时候可以用HDFS或者Cassandra存每小时或者每天的数据,一个定时的map reduce job来根据需求计算这段时间内的top k(可以细化到秒)。长期的metadata可以直接删除也可以migrate到成本更低的S3里面。统计的top k result根据需求可以丢不同的数据库里。这里常问的点就是ingest这么多数据的时候如何来避免写过热。

Real time具体看QPS的大小,标准解法就是每个service直接把需要统计的项丢一个Kafka topic里面用Kafka来decouple ingest, 然后real time Kafka + Flink来统计每秒top k。但是要是QPS太大比如1M左右,其实real time也可以用batch来做in memory batch update的,每个server用in memory的hashmap来存key和counts,每200ms 提交一次in memory的这个result到 Redis里面然后另外每秒对Redis做real time Top K计算。我一般都会把这两种解法抛出来然后讨论下trade off。如果有需求做real time + historical top K 的话 real time计算出来的结果不能删除得和之前的甚至long term的结果结合起来做一个联合的top K。

评分

参与人数 1大米 +1 收起 理由
zcoj + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
Hmoon 2022-12-29 13:32:20 | 只看该作者
全局:
chat app我推荐阿里的,但是呢,面试官不一定喜欢。。。
https://developer.aliyun.com/art ... le.8.4ee36b1bVFt5Ee
https://developer.aliyun.com/art ... le.9.4ee36b1bVFt5Ee
https://developer.aliyun.com/article/710363
网上其他的 除了楼主推荐的,其他的根本没法看,包括Alex Xu的
回复

使用道具 举报

🔗
jcwang1027 2022-12-29 13:32:40 | 只看该作者
全局:
mark一下
回复

使用道具 举报

🔗
 楼主| 无量塔 2022-12-29 14:26:59 | 只看该作者
全局:
Hmoon 发表于 2022-12-28 21:32
chat app我推荐阿里的,但是呢,面试官不一定喜欢。。。
https://developer.aliyun.com/article/701593?sp ...

确实,有一次面试刚好按这个答的,面试官好像没见过这种方法,跟不太上…
回复

使用道具 举报

🔗
Hmoon 2022-12-29 14:34:05 | 只看该作者
全局:
无量塔 发表于 2022-12-28 22:26
确实,有一次面试刚好按这个答的,面试官好像没见过这种方法,跟不太上…

我也是。。。。。
回复

使用道具 举报

🔗
righteous 2023-1-5 11:16:13 | 只看该作者
全局:
system design好贴关注
回复

使用道具 举报

🔗
AndrewAct 2023-1-5 13:57:00 | 只看该作者
全局:
很有帮助!感谢lz分享
回复

使用道具 举报

🔗
肥颓 2023-1-6 07:57:08 | 只看该作者
全局:
mark 一下,我也觉得ddia 很入门(introduction,不是不好的意思)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表