【分布式系统案例课】计数服务之需求收集和总架构设计

面试题

对B站视频观看量进行实时的计数

技术问题是一个比较普遍的问题,比如对头条作者的粉丝或者是对获赞进行计数。或者是对企业的业务指标进行计数,例如注册登录下单数这些等。

【分布式系统案例课】计数服务之需求收集和总架构设计_第1张图片

需求澄清

问题一:用户点击观察视频之后,这个数量要隔多久要求被更新,是一分钟?还是多长时间?

这个问题决定该系统是一个线下的批处理系统,还是一个实时或者近实时的处理系统。

问题二:预期的99百分位请求的延迟是多少?

这个问题设计是否需要引入缓存

功能需求 —— API

【分布式系统案例课】计数服务之需求收集和总架构设计_第2张图片
一个系统包括功能需求和非功能需求。非功能需求包括:高可用、可扩展、维护性、成本等。非功能需求对系统的架构和设计是非常重要的。

非功能需求如下

【分布式系统案例课】计数服务之需求收集和总架构设计_第3张图片
用户点击观看一个视频,一分钟之后刷新视频,就可以看到这个视频的观看数被更新了。
所以这是一个近实时的最终一致的系统。

从简化架构开始

有两条路径:一条是写入路径,一条是读取路径。
【分布式系统案例课】计数服务之需求收集和总架构设计_第4张图片
数据库、技术服务、查询服务三个组件。
分布式系统的核心是数据,所以我们可以从数据存储开始。

你可能感兴趣的:(分布式,分布式)