写点什么

【架构实战营作业】模块二——朋友圈高性能架构

用户头像
聆息
关注
发布于: 1 小时前

一:需求分析

微信朋友圈复杂度总体分析


朋友圈高性能业务指标

背景

2021-01-19,张小龙在演讲中表示,每天有 10.9 亿用户打开微信,3.3 亿用户进行了视频通话;有 7.8 亿用户进入朋友圈,1.2 亿用户发表朋友圈,其中照片 6.7 亿张,短视频 1 亿条;

峰值预估

刷朋友圈—1000wQPS(每天有 7.8 亿用户进入朋友圈,假设流量高峰值为 1000w)

发布—1000w/100=10wTPS(假设 1000w 进入朋友圈的人有 10w 人发帖)

评论—1000w/100=10wTPS(假设 1000w 进入朋友圈的人有 10w 人进行评论)

点赞—1000w/20=50wTPS(假设 1000w 进入朋友圈的人有 50w 人进行点赞)


朋友圈质量复杂度分析

  • 高性能:每天有 7.8 亿用户进入朋友圈,在高峰时段 22:00 预估峰值在千万级,并发量较大,对性能有一定的要求(在微信现有的技术体系下,主要考虑集群高性能)。

  • 高可用:作为一款社交娱乐产品,短暂的读不可用容忍度高;但用户数据不能丢失,需要保障数据高可用。

  • 可扩展:朋友圈业务相对比较简单,主要围绕帖子发布,点赞与评论,扩展性这块可以先不考虑。

  • 成本和安全:微信作为主流社交产品,成本这块不会是瓶颈;安全这块由于涉及到用户数据,需要考虑朋友圈个人隐私保护,采用数据加密及产品解决方案。

二:总体架构方案



三:架构设计说明

1、CDN 层:主要用于静态资源(图片)存储,用户发布朋友圈时将图片上传至就近的 CDN,为发布及浏览朋友圈提速;

2、集群高性能通过 nginx 进行任务分配;

3、选用 hbase 存储发布、点赞及评论数据,数据拉取根据 key 获取数据更快,mysql 对于海量数据的读写性能有瓶颈;

数据安全这块,通过集群半同步进行复制保障数据高可用;

4、时间线存储在 redis 中,读写更快;

用户朋友圈发布后,图片保存在 CDN 中,hbase 中的发布表保存用户信息,cdn 中的图片 url,查看权限信息等,

发布表持久化完成后,同步更新用户的朋友圈时间线,同时发起异步批量更新用户好友(仅限拥有查看权限的好友)时间线处理。


by@huihui

发布于: 1 小时前阅读数: 3
用户头像

聆息

关注

还未添加个人签名 2018.11.19 加入

还未添加个人简介

评论

发布
暂无评论
【架构实战营作业】模块二——朋友圈高性能架构