写点什么

模块二作业

用户头像
Geek_35a345
关注
发布于: 3 小时前

复杂度分析:

我认为朋友圈属于业务复杂度比较高,但是质量复杂度不是很高。

业务复杂度比较高主要表现在它需要支持多种媒介的分享,比如图片,视频,网站,小程序等,这就需要服务端利用多种手段去存储客户朋友圈的内容。

并且还要有阅后即焚,阅览时效,访问权限等功能,朋友圈好友互动还需要点赞评论等功能,还需要融入广告功能,功能较为繁杂。


但是质量要求不会很高,即使极端情况下发生部分数据丢失,或者短暂崩溃,对大部分人的日常生活其实没有任何影响。


吞吐量

我认为吞吐量要求跟微信红包以及微信自身相比,要求会相对低一些,并且用户也能允许一定的加载卡顿情况出现。在节日或者大型时间发生的时候,朋友圈的发表数量和浏览量会比平时更多。可以有部分应用部署在腾讯云里面,方便根据需求弹性拓展。



设计思路:

  1. 腾讯内部无论是从技术上还是基础设施架构上,都有很强的实力,并且朋友圈是一个长期被使用的服务,我认为无需经历单体架构演变的阶段。可以按目前的规划拆分微服务,并且发布在腾讯云上,在访问高峰时实现弹性拓展。

  2. 权限系统需要单独拎出来成为模块,因为可以预见,朋友圈的权限会不断的改进,如果没有单独成为一个模块,融入在其他模块里面,一旦发生变更,投入成本会增加。

  3. Mysql 使用腾讯内部的 Tidb,将视频,图片等内容保存在对象存储器里面,可以解决 mysql 的资源,也更适合存储,相对来说存储成本较低。db 可以不采取强一致性主备方案,可以加快微服务访问速度,实现最终一致即可。朋友圈并没有强一致性的需求。

  4. 朋友圈刚刚起步阶段,没有必要部署多机房。可以运营一段时间以后看看客户反馈,再决定是否需要多机房运行加快访问速度。

用户头像

Geek_35a345

关注

还未添加个人签名 2019.03.26 加入

还未添加个人简介

评论

发布
暂无评论
模块二作业