写点什么

模块五作业

作者:panxiaochun
  • 2021 年 12 月 02 日
  • 本文字数:838 字

    阅读完需:约 3 分钟

微博评论的高性能高可用计算架构

一、计算性能预估

假设微博每天的发送量为 2.5 亿条,每条微博有 100 人浏览,则每天总共有:


大部分人看微博集中在早上 8 到 9 点,中午 12 到 13 点,晚上 20 到 22 点,假设这几个时间段发微博总量占比为 60%,则这 4 个小时的平均看微博的 TPS 计算如下:


假设看微博的人当中有 10%的人发布评论,TPS 为


假设 1 次微博评论查询返回 10 条评论,假设查询评论的 QPS 近似浏览微博的 QPS,为


二、非热点事件时的高性能计算架构

发布微博评论

发布微博评论是写操作,可以用漏桶做写缓冲,慢慢异步处理,因为评论不必立刻看到。选择 4 级负载均衡,评论微博需要登录状态,同发微博一致保持在分布式缓存中,可以将请求发送到任意评论微博服务,选择轮询或随机算法。

按照每台服务器每秒处理 500 笔来估算,完成 100K/s 需要 200 台服务器,假设写缓冲可以缓冲 50%请求,则需要 100 台服务器,加上 20%预留量,最终需要 120 台服务器。


查看微博评论

查看微博评论是一个典型的读场景,由于评论发了后不能修改,因此非常适合用缓存架构。同时由于请求量很大,使用 4 级负载均衡。假设 CDN 能够承载 90%的用户流量,那么剩下 10%的查看评论的请求进入系统,则请求 QPS 为


由于查看评论的处理逻辑比较简单,按每台服务器每秒 1000 估算,完成 1000K/s 的 TPS,需要 100 台服务器,加上 20%预留量,最终需要 120 台服务器。


是否要拆分独立的服务

评论功能单独出一个服务,非主要的功能拆出来避免影响主要业务发展,如性能、查问题、维护等影响。


三、热点事件时的高可用计算架构

发布微博评论

热点事件的微博评论量很难预估,只能预防。可以用漏桶算法做限流,先把微博评论放进消息队列,把消息队列长度设置成很大,后台异步处理。如果微博评论请求实在太多了,可以自动熔断微博评论,以保住核心业务高可用。


查看微博评论

热点事件发生后,绝大部分请求都会落在导致热点事件发生的那一条微博上的评论,可以使用多副本缓存。

用户头像

panxiaochun

关注

还未添加个人签名 2019.07.13 加入

还未添加个人简介

评论

发布
暂无评论
模块五作业