一、需求沟通
1、用例
1、用户寻找某人并显示与被寻人之间的最短路径
2、服务高可用
2、算数
二、答案
1、概要设计
2、扩展设计
3、关键点总结
1、Query API
查询API,负责查询相关的业务
2、Lookup Service
查询一个用户及其好友关系,先找到该用户存在哪一台机器上,再锁定好友关系
3、Person Server
存储一个用户及其好友关系,多台机器
4、User Graph Service
计算某人与被寻人的最短路径
5、Memory Cache
某些搜索比别的更热门,同时某些搜索仅执行一次。有些热门搜索可以放到缓存里。