写点什么

模块 2 作业

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

复杂度分析:

业务复杂度: 低。 属于非实时类的发布和评论的业务。虽然对延时有一定要求,但是不像转账类业务一样有很强的实时一致性需求。

技术复杂度:高。可用性方面来看, 一方面是用户量比较大且使用频繁,这就导致内容本身量非常大;而一个用户的朋友是动态增加和减少的,朋友之间又是多对多关系,这就使得要有一套非常高效的朋友圈展示和评论的算法。 另一方面,微信的用户分布在全国各地,好友也是来自不同区域,这就对在有限的时间内的可用性提出了要求。

另:个人观点,可用性和性能不应该是并列的两个质量属性。 性能是一种手段,可用性是目标。


设计点:

1。考虑到用户量大/区域分散/多对多等特性,需要对用户进行拆分。此处先假设进行机房级别的拆分(根据实际情况可能还有机房内的拆分。 不同的拆分场景拆分的算法是不一样的。例如机房基于用户 id 拆分,机房内基于 hash 进行拆分)。

2。 考虑到事务量大,而且实时性要求一般,采用异步消息的方式进行事务处理。



用户头像

cherrycheek

关注

还未添加个人签名 2018.05.07 加入

还未添加个人简介

评论

发布
暂无评论
模块2作业