尽管此刻没有如愿以偿找到合适的ft,但我希望能够充分认识到自己的不足,积蓄力量。相信在不久的将来未来会有爆发的机会。
---------------------------------------------------------------------------------------------
知识的广度(component, 目的)和深度(sde1: 3年以内,sde2: 4年以上,sde3:team lead,org impact可小可大,深度,3+:org lead, 领域见解)
Design user system
设计用户系统,实现功能包括注册、登陆、用户信息查询,好友关系存储
Scenario:
注册,登陆,查询(需求量大),用户信息修改
支持100M DAU
注册,登陆,信息修改QPS
100M * 0.1 / 86400 ~100
0.1 = 平均每个用户每天登陆+注册+信息修改
peak = 100 * 3 = 300 -> Mysql
查询的QPS
100M * 100 / 86400 ~100k
100 = 平均每个用户每天查询用户信息相关的操作次数(查看好友,发信息,更新消息主页)
peak = 100k * 3 = 300k ->Redis
MySql/PosgreSql等SQL数据库性能: 1k QPS
MongoDB/Cassandra等硬盘型Nosql数据库性能:10k QPS
Redis/Memcached等内存型Nosql数据库性能:100k~1m QPS
用户系统特点:读非常多,写非常少。读多写少,一定用cache进行优化。
Service:
一个authenticationService负责登陆注册
一个userService负责用户信息存储和查询
一个friendshipService负责好友关系存储
Storage:
Scale: