写点什么

架构实战营模块二作业

作者:哈啰–J
  • 2022 年 5 月 03 日
  • 本文字数:560 字

    阅读完需:约 2 分钟

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

用户量级:查阅资料显示在 2021 年三季度微信用户月活为 12.63 亿用户,1.2 亿用户每天发朋友圈,照片 6.7 亿张,7.8 亿用户浏览朋友圈。


一. 朋友圈核心功能


二. 流量预估


三.服务分解

因为浏览朋友圈功能 QPS 较大,且需要融入广告穿插能力和算法,再考虑到应用服务扩展性和降低耦合度,不相互影响的考虑下,故而将浏览服务和发送服务拆分到 2 个微服务中


四.朋友圈服务架构以及说明

4.1 发送朋友圈


  1. 不同用户数据存在在多机房 IDC, 视屏、图片存在在 OSS 对象数据库中并推送至 CDN 服务器,文本、链接、评论、点赞以及视屏、图片地址存在在缓存以及 LSM 数据库中

  2. Redis 缓存存储用户好友时间顺序朋友圈列表,以及自身发表的朋友圈信息(可存储近期数据),长期数据可以从关系数据库加载。

  3. 需要具备跨 IDC 通知机制,同步好友间朋友圈数据

  4. LSM 数据库分为冷热数据库,热数据库存储一年内朋友圈信息,冷数据存储一年外数据

  5. proxy 模块进行数据分片,扩容、迁移等能力

  6. 消息队列系统进行削峰填谷,减少数据库实时访问压力

  7. 用户朋友圈发布完成后可写入本地缓存,在读取时可以实时获取,提升体验

4.2 浏览朋友圈

1.从本地缓存获取已经被本地缓存的朋友圈数据

2.若有新数据则调用服务,近期朋友圈最新数据从缓存获取,翻页加载长期朋友圈数据加载 LSM 数据库获取

3.图片、视屏等静态资源从就近 CDN 获取,或者从 OSS 服务器获取后推送至 CDN

图就不画了

用户头像

哈啰–J

关注

还未添加个人签名 2018.09.18 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块二作业_哈啰–J_InfoQ写作社区