为一个社交网络设计数据结构

一、需求沟通

1、用例

1、用户寻找某人并显示与被寻人之间的最短路径

2、服务高可用

2、算数

为一个社交网络设计数据结构

 

二、答案

1、概要设计

为一个社交网络设计数据结构

2、扩展设计

为一个社交网络设计数据结构

3、关键点总结

1、Query API

查询API,负责查询相关的业务

2、Lookup Service

查询一个用户及其好友关系,先找到该用户存在哪一台机器上,再锁定好友关系

3、Person Server

存储一个用户及其好友关系,多台机器

4、User Graph Service

计算某人与被寻人的最短路径

5、Memory Cache

某些搜索比别的更热门,同时某些搜索仅执行一次。有些热门搜索可以放到缓存里。