写点什么

架构实战营作业 M02

用户头像
Shawn Liu
关注
发布于: 1 小时前

朋友圈复杂度是一个业务复杂度低、质量复杂度高的业务。整个朋友圈业务可以分为下面 3 种业务:

在网上没有找到具体的业务指标数值。但是从质量要求从高到低排序应该为:看朋友圈 > 朋友圈互动 > 发朋友圈。


发朋友圈

发朋友圈从抽象角度讲,其实就是将一条动态信息入库的过程。但是主要考虑到看朋友圈的高性能要求,可以将朋友圈动态时间线放在 Redis 中,避免从数据库中读取大量的“动态”记录。

进程模型和网络模型按照之前的即可,没有“创新”的意义。而由于发朋友圈本质是一个 Insert 的动作,所以计算高性能和存储高性能上主要考量一个负载的均衡。


看朋友圈

看朋友圈的业务主要是从浏览朋友圈的动态时间线,以及对应动态的评论等信息。得益于发朋友圈时对时间线做的缓存,看朋友圈业务能够简化为从缓存中读取时间线数据。又譬如评论等信息,也可以视场景走这样一套“缓存+关系型数据库”的形式。形式雷同,下面没有体现出来。


朋友圈互动

朋友圈互动主要涉及朋友圈动态的评论、点赞等功能。但是和红包业务不同的是,评论、点赞数据的生命周期可能相对更长、对应数据量也更大。所以这块自己考虑是不是使用传统数据库形式更加合适。但是如果业务指标硬要求高,可以考虑从时间维度来拆分互动数据。如最近 3 天的互动数据在 Redis 中,历史归档数据用关系型数据库或其他方案。

架构图如下:


总结

整体架构 - 单机房示例:


用户头像

Shawn Liu

关注

还未添加个人签名 2018.05.04 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营作业 M02