写点什么

架构训练营模块二作业

作者:gigifrog
  • 2023-01-01
    北京
  • 本文字数:497 字

    阅读完需:约 2 分钟

题目

分析下微信朋友圈的高性能复杂度


1. 朋友圈服务的复杂度

朋友圈属于业务复杂度低,质量复杂度高

业务复杂度低

•主要业务:发布新内容/点赞评论/加载新内容

质量复杂度高

•大流量:微信用户基数大,每时每刻有海量请求

•高可用:即使小部分用户无法使用朋友圈,也会是社会热点新闻,对公司声誉造成影响

•非强一致性:用户不需要立即阅读最新发布的内容,用户可以容忍几分钟的延迟

•分区可容忍:即使不同用户同一时刻看到的内容不一致也是可以接受的,只要最终一致即可

2.朋友圈服务的高性能方案

发布新内容 / 点赞评论高性能方案

加载新内容高性能方案


3.朋友圈架构图


  • 只需任务分配器保证负载均衡,Nginx 即可

  • Redis 用来缓存文本/链接地址,CDN 用来缓存图片/短视频

  • 文本内容,链接地址存入 MySQL,图片存储在专用多媒体安文件服务器

  • 发布内容,评论点赞是纯写入操作,写入主数据库服务器

  • 加载新内容是读取操作,从从数据库服务器读取。主从数据库服务器间可以用异步/半同步的方式复制数据

  • 所有已加载的朋友圈内容都缓存在用户手机内,在确认内容没有被修改/删除的情况下,不需要重复加载。

  • Redis/CDN 内缓存 N 天内的数据(N 可以是 2~3 天,或者 1 周).过于老旧的内容(>1 星期)访问量非常稀少

用户头像

gigifrog

关注

还未添加个人签名 2018-01-17 加入

还未添加个人简介

评论

发布
暂无评论
架构训练营模块二作业_#架构训练营_gigifrog_InfoQ写作社区