欢迎光临
我们一直在努力

面试官问“设计一个敲击计数器”,90%的人写得出来,却想不明白它背后的系统设计哲学

面试官问“设计一个敲击计数器”,90%的人写得出来,却想不明白它背后的系统设计哲学

作者:Echo_Wish

前几天看到一个经典算法题:

Design Hit Counter(敲击计数器)

题目很简单:

设计一个系统。

支持两个操作:

hit(timestamp)

表示当前时刻收到一次访问。

getHits(timestamp)

返回最近5分钟内收到多少次访问。

很多人一看:

“这不就是计数器吗?”

结果真正开始写代码的时候发现:

事情远没有想象中简单。

因为这道题考察的从来不是计数。

而是:

如何在有限资源下维护一个不断流动的时间窗口。

如果你认真研究过日志系统、监控系统、Prometheus、Kafka Metrics、流计算窗口统计,你会发现:

Design Hit Counter本质上就是时间窗口统计的缩小版。

今天咱们就从算法、工程和架构三个角度聊聊这道经典题。


一个计数器为什么会成为经典面试题?

赞(0)
未经允许不得转载:171主机测评 » 面试官问“设计一个敲击计数器”,90%的人写得出来,却想不明白它背后的系统设计哲学
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址