模块二作业
业务数据
微信朋友圈业务数据参考:https://baijiahao.baidu.com/s?id=1689318242811647928&wfr=spider&for=pc
业务数据分析
考虑到用户刷朋友圈的时间大部分会比较集中在晚上 6 点到晚上 11 点,假设有一半的用户是在这段时间刷朋友圈,而且是平均分配在这段时间。则看朋友圈是 2 万多 QPS,按照上面的业务数据,假设发朋友圈的用户是进入朋友圈的 1/7,即 2800 多 TPS,图片上传的 2800*6 TPS,短视频 2800*1 TPS。峰值 QPS(TPS)假设为平均值的 2 倍。
照片假设每张大小 100K,因此,照片流入流量 3G/s
视频每个大小为 2M,因此,视频流入流量 10G/s
在看朋友圈时如果没有点开图片和视频时,图片和视频(抽取静态帧,可以认为图片和视频的大小一样)都是经过压缩处理的,假设压缩后的大小都是 10K,不考虑点开图片和视频的流量,同时忽略文字流量。看朋友圈的流出流量 390M/s
从上面的数据分析,朋友圈的复杂度于计算的高性能和存储的高性能,同时还有大流量的高性能上。
发照片/短视频架构
发照片和短视频的架构类似,对于图片和视频的上传可以按照区域将图片、视频上传到用户临近的文件服务器机房,返回文件存储的地址,再将发朋友圈的结构化数据按用户分片存储在分库分表数据库中,最后再异步同步朋友圈信息给好友的时间线。由于朋友圈信息对实时性的要求不高,因此这里选择异步的方式。
看朋友圈架构
看朋友圈与发朋友圈的架构类似,结构化的数据从用户自己时间线的存储中拉去,对图片和视频的下载则到对应的文件存储服务器上下载。
评论