面试题
对B站视频观看量进行实时的计数
技术问题是一个比较普遍的问题,比如对头条作者的粉丝或者是对获赞进行计数。或者是对企业的业务指标进行计数,例如注册登录下单数这些等。
需求澄清
问题一:用户点击观察视频之后,这个数量要隔多久要求被更新,是一分钟?还是多长时间?
这个问题决定该系统是一个线下的批处理系统,还是一个实时或者近实时的处理系统。
问题二:预期的99百分位请求的延迟是多少?
这个问题设计是否需要引入缓存
功能需求 —— API
一个系统包括功能需求和非功能需求。非功能需求包括:高可用、可扩展、维护性、成本等。非功能需求对系统的架构和设计是非常重要的。
非功能需求如下
用户点击观看一个视频,一分钟之后刷新视频,就可以看到这个视频的观看数被更新了。
所以这是一个近实时的最终一致的系统。
从简化架构开始
有两条路径:一条是写入路径,一条是读取路径。
数据库、技术服务、查询服务三个组件。
分布式系统的核心是数据,所以我们可以从数据存储开始。