没有合适的资源?快使用搜索试试~ 我知道了~
37-计数系统设计(一):面对海量数据的计数器要如何做?_For_group_share1
需积分: 0 0 下载量 73 浏览量
2022-08-03
19:59:13
上传
评论
收藏 426KB PDF 举报
温馨提示
试读
7页
来看这样个场景:来看这样个场景:在地铁上,你也许会经常刷微博、点赞热搜,如果有抽奖活动,再转发波,这些与微博息息相关的数据,其实就是微博场景下的计数数据,细说
资源推荐
资源详情
资源评论
37-计数系统设计(⼀):⾯对海量数据的计数器要如何做?37-计数系统设计(⼀):⾯对海量数据的计数器要如何做?
你好,我是唐扬。
从今天开始,我们正式进⼊最后的实战篇。在之前的课程中,我分别从数据库、缓存、消息队列和分布式服
务化的⻆度,带你了解了⾯对⾼并发的时候要如何保证系统的⾼性能、⾼可⽤和⾼可扩展。课程中虽然有⼤
量的例⼦辅助你理解理论知识,但是没有⼀个完整的实例帮你把知识串起来。
所以,为了将我们提及的知识落地,在实战篇中,我会以微博为背景,⽤两个完整的案例带你从实践的⻆度
应对⾼并发⼤流量的冲击,期望给你⼀个更加具体的感性认识,为你在实现类似系统的时候提供⼀些思路。
今天我要讲的第⼀个案例是如何设计⼀个⽀持⾼并发⼤存储量的计数系统。
来看这样⼀个场景:来看这样⼀个场景:在地铁上,你也许会经常刷微博、点赞热搜,如果有抽奖活动,再转发⼀波,⽽这些
与微博息息相关的数据,其实就是微博场景下的计数数据,细说起来,它主要有⼏类:
1. 微博的评论数、点赞数、转发数、浏览数、表态数等等;
2. ⽤⼾的粉丝数、关注数、发布微博数、私信数等等。
微博维度的计数代表了这条微博受欢迎的程度,⽤⼾维度的数据(尤其是粉丝数),代表了这个⽤⼾的影响
⼒,因此⼤家会普遍看重这些计数信息。并且在很多场景下,我们都需要查询计数数据(⽐如⾸⻚信息流⻚
⾯、个⼈主⻚⾯),计数数据访问量巨⼤,所以需要设计计数系统维护它。
但在设计计数系统时,不少⼈会出现性能不⾼、存储成本很⼤的问题,⽐如,把计数与微博数据存储在⼀
起,这样每次更新计数的时候都需要锁住这⼀⾏记录,降低了写⼊的并发。在我看来,之所以出现这些问
题,还是因为你对计数系统的设计和优化不甚了解,所以要想解决痛点,你有必要形成完备的设计⽅案。
计数在业务上的特点计数在业务上的特点
⾸先,你要了解这些计数在业务上的特点是什么,这样才能针对特点设计出合理的⽅案。在我看来,主要有
这样⼏个特点。
那么,⾯临着⾼并发、⼤数据量、数据强⼀致要求的挑战,微博的计数系统是如何设计和演进的呢?你⼜能
从中借鉴什么经验呢?
数据量巨⼤。据我所知,微博系统中微博条⽬的数量早已经超过了千亿级别,仅仅计算微博的转发、评
论、点赞、浏览等核⼼计数,其数据量级就已经在⼏千亿的级别。更何况微博条⽬的数量还在不断⾼速地
增⻓,并且随着微博业务越来越复杂,微博维度的计数种类也可能会持续扩展(⽐如说增加了表态数),
因此,仅仅是微博维度上的计数量级就已经过了万亿级别。除此之外,微博的⽤⼾量级已经超过了10亿,
⽤⼾维度的计数量级相⽐微博维度来说虽然相差很⼤,但是也达到了百亿级别。那么如何存储这些过万亿
级别的数字,对我们来说就是⼀⼤挑战。
访问量⼤,对于性能的要求⾼。微博的⽇活⽤⼾超过2亿,⽉活⽤⼾接近5亿,核⼼服务(⽐如⾸⻚信息
流)访问量级到达每秒⼏⼗万次,计数系统的访问量级也超过了每秒百万级别,⽽且在性能⽅⾯,它要求
要毫秒级别返回结果。
最后,对于可⽤性、数字的准确性要求⾼。⼀般来讲,⽤⼾对于计数数字是⾮常敏感的,⽐如你直播了好
⼏个⽉,才涨了1000个粉,突然有⼀天粉丝数少了⼏百个,那么你是不是会琢磨哪⾥出现问题,或者打
电话投诉直播平台?
资源评论
大禹倒杯茶
- 粉丝: 12
- 资源: 331
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功