写点什么

模块五作业

作者:张贺
  • 2023-01-09
    上海
  • 本文字数:545 字

    阅读完需:约 2 分钟

微博评论包括发评论和看评论两种业务场景。


发评论:

假设每条微博下面评论数有 0.1 条,则微博评论每天的发送量约为 2500w 条。

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

2500w * 60% / (4 * 3600) ≈ 1 K/s。

按照每台服务器每秒处理 500 来估算,需要 2 台服务器,留一定的冗余量,需要 3 台发评论服务器。


看评论:

假设每条评论观看人数有 100 次,则观看微博评论的次数为 25 亿次,同理,看微博的 TPS 为 100 K/s。

由于看评论人数远大于发评论人数,为了避免看评论人数过多影响发评论的服务,因此发评论和看评论的服务应该分开。

由于 90%的看评论能够直接从 CDN 缓存中获取,因此服务器实际 TPS 为 10K/s,按照每台服务器每秒处理 1000 来估算,需要 10 台服务器,留一定的冗余量,需要 12 台看评论服务器。


高性能:

发评论和看评论用户量均过亿,所以都采用多级负载均衡架构,,覆盖 DNS -> F5 -> Nginx -> 网关的多级负载均衡,负载均衡算法采用轮询或随机算法。发评论为写操作,因此不能用缓存。看评论使用多级缓存,由于看前三页评论的用户数远大于其他页的用户数,其中 CDN 负责缓存前三页的微博评论。


热点事件高可用:

热点事件微博发评论可以用漏桶算法,尽量减少丢弃请求。


用户头像

张贺

关注

还未添加个人签名 2018-11-03 加入

还未添加个人简介

评论

发布
暂无评论
模块五作业_张贺_InfoQ写作社区