第六周作业
首先要求分析思路需要将评论分为“发评论”和“看评论”,如果有同学写了“评论点赞”也可以,那就是 3 个场景;
注意作业要求是“计算性能”,不需要包括存储性能,如果有同学一起做了,那更好;
“发评论”和“看评论”最好拆分服务,因为看评论的量远大于发评论,拆开可以避免看评论太多导致发不了评论,如果写了“评论点赞”,那么“评论点赞”可以和“看评论”放在一起;
“看评论”的首页热门评论列表可以考虑用 CDN,定期刷新(例如 1 小时刷新一次),其它评论无需用 CDN,用分布式缓存来缓存评论列表页(注意这里用评论列表页,而不是单条评论),因为翻页看后面的评论的人其实不多,如果有同学坚持用 CDN 缓存列表页,也是可以的,但一般也只需缓存最新的 5 页左右,不需要全部缓存;
热点事件微博的“发评论”可以用“漏桶算法”的变种“写缓冲”来应对海量评论,不要用“令牌桶”,令牌桶可能导致丢弃比较多评论;
需要大概计算服务所需要的机器数量,按照 300~1000 左右的 TPS/QPS 来估算都可以,如果有同学说一台机器可以装多个同类服务来降低服务器数量,也是可以的;
评论