提醒,本文较长,可提前收藏/转发。

一、需求缘起

很多业务都有“计数”需求,以微博为例:

image.png

微博首页的个人中心部分,有三个重要的计数:

关注了多少人的计数

粉丝的计数

发布博文的计数

image.png

微博首页的博文消息主体部分,也有有很多计数,分别是一条博文的:

转发计数

评论计数

点赞计数

甚至是浏览计数

在业务复杂,计数扩展频繁,数据量大,并发量大的情况下,计数系统的架构演进与实践,是本文将要讨论的问题。

二、业务分析与计数初步实现

image.png

典型的互联网架构,常常分为这么几层:

调用层:处于端上的browser或者APP

站点层:拼装html或者json返回的web-server层

服务层:提供RPC调用接口的service层

数据层:提供固化数据存储的db,以及加速存储的cache

针对“缘起”里微博计数的例子,主要涉及“关注”业务,“粉丝”业务,“微博消息”业务,一般来说,会有相应的d

收藏 打印