【发布时间】:2014-06-11 18:41:09
【问题描述】:
我在一次采访中被问到这个问题:
对于高流量网站,有一种方法(比如 getItems())会被频繁调用。为了防止每次都去数据库,结果被缓存了。但是,可能有成千上万的用户同时尝试访问缓存,因此锁定资源不是一个好主意,因为如果缓存过期,则会调用数据库,所有用户都会拥有等待数据库响应。什么是处理这种情况的好策略,以便用户不必等待?
我认为这是当今大多数高流量网站的常见情况,但我没有处理这些问题的经验——我有处理数百万条记录的经验,但不是数百万用户。
如何学习高流量网站所使用的基础知识,以便在未来的面试中更有信心?通常我会开始一个业余项目来学习一些新技术,但不可能在旁边建立一个高流量的网站:)
【问题讨论】:
-
apachebench (ab) 是一个产生流量的串行请求工具。此外,grindr、wkr 和其他几个实现了可用于模拟高流量网站的并行流量生成器。
标签: performance caching web concurrency scalability