写点什么

架构实战营模块二作业

用户头像
Morphling
关注
发布于: 1 小时前
架构实战营模块二作业

一、微信朋友圈业务复杂度相对低,质量复杂度高。理由如下

  • 朋友圈功能有发布、查看、评论、点赞,权限控制,广告推荐等,可以看出业务相对简单

  • 质量要求高,作为国民级人人都用功能,质量要求可想而知

发朋友圈架构设计

浏览朋友圈架构设计

评论点赞架构设计

发、评、赞事件变动架构设计

二、设计说明

1、我的想法是:首先服务要不要进行拆分,比如拆成发子系统,评子系统,赞子系统等。我认为是不需要进行拆分的,理由为:朋友圈的模型是类似 bbs,发个帖子后,后面人进行评论。“帖子”是核心领域,拆分后反而增加系统调用开销,且发评赞是属于帖子的基本操作

2、整体的架构是有个朋友圈服务器集群,数据库采用关系型数据库进行存储(朋友圈模型天生就是关系型),数据库分库分表,想法是同一类用户的数据放在同一个数据库里,“类”的区分策略可以是用户 id 进行一致性 hash,或者用户的所在地区域等;

3、分析朋友圈的场景,发现朋友圈所有的查询场景,均可走缓存;可以说发个朋友圈后,只要最大限度保证你的朋友能看到就可以了,这个最大限度也是最大容忍度,30 秒,10 秒都是可以接受的;故可以根据发,评,赞变动事件来异步构建缓存;落数据库成功后,发送变动事件到 mq,然后消费 mq 消息,消费的核心是构建关于这个“帖子”相关信息的缓存信息,缓存构建成功后,再推送给微信客户端(朋友圈红点功能)

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

Morphling

关注

还未添加个人签名 2018.04.15 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块二作业