一、需求沟通
1、用例
1、服务根据分类计算过去一周中最受欢迎的商品
2、用户通过分类浏览过去一周中最受欢迎的商品
3、服务有着高可用性
2、算数
二、答案
1、概要设计
2、扩展设计
3、关键点总结
1、Sales API
负责交易的API
2、Read API
负责浏览的API
3、Sales Rank API
通过交易数据按分类计算上周最受欢迎的商品
4、SQL
轻量级,存关系型数据,方便查询写入。
5、对象存储
重量级,非关系型数据库,存日志,大的文件等,数据量非常大。用的大数据,map reduce等技术,方便离线计算,实时性差。
三、其他知识点
1、服务有着高可用性
(1)灾难备份
(2)主备
(3)负载均衡:提供故障转移,实现高可用
2、数据库要建索引
通过哪个key来查,将这个key建索引,索引会被写到内存中,就不用去数据库中一条一条查询了,去内存中直接就能查出来,加快查询速度。
3、CDN
内容分发服务器,存图片,大的文件,内容都是一样的。访问就近的CDN节点,为了更快地访问到资源。
4、负载均衡
先用四层负载均衡,不够用再用七层负载均衡。性能比较好的机器,一般两台服务器就够用了,主备。