分布式计数服务
最后更新于
计数是非常普遍的需求,比如交易系统中对交易量做统计、视频站点中对视频的点击数做统计、新闻网站对文章的点击量做统计、博客/微博中的点赞计数等;第一感觉可能是很简单啊,select count(*) ...
就搞定了,但是一旦数据量大了之后,并发上来之后,这件事情就没有那么简单了
原始阶段的计数
最开始的业务都是基于数据库,这个时候数据量小(核心业务的但表数据量在百万级以下),并发请求获取计数的需求也不大,使用数据库的 select count
就能搞定,而且配合分页等,满足业务需求绰绰有余
初步上升期
业务做的越来越好,原始的 select count
的方式就体现出了不足,查询速度越来越慢,以至于最后无法忍受。这个时期,我们可以考虑借助计数统计表来更新计数和维护计数
高速上升期
这个时候就需要在架构设计层面上做改进和优化了,比如需要引入缓存(如redis),还可能需要引入 MQ 来缓冲高并发的写压力