关于网站的一个令人惊讶的发现是,在某些情况下,一台非常小的机器可以处理大量的访问者。例如,假设您有一个包含许多静态页面的简单网站(在这种情况下,“静态”意味着每个人在查看任何页面时都会看到相同的版本)。如果您使用一台运行 Windows NT 或 Linux 的普通 500MHz 赛扬机器,在其上加载 Apache Web 服务器,并通过 T3 线路(每秒 4500 万比特)将此机器连接到互联网,您每天可以处理数十万的访问者。许多 ISP 会每月以 1000 美元或更低的价格向您出租这种专用机器配置。这种配置将运行良好,除非
- 您需要处理每天数百万的访客。
- 单台机器出现故障(在这种情况下,您的网站将停机,直到安装和配置新机器)。
- 页面非常大或复杂。
- 页面需要根据每个用户动态变化。
- 需要执行任何后端处理以创建页面内容或处理页面上的请求。
由于大多数大型网站都符合所有这些条件,它们需要显著更大的基础设施。
广告
处理负载主要有三种策略
- 网站可以投资一台拥有强大处理能力、内存、磁盘空间和冗余的巨型机器。
- 网站可以将负载分布到多台机器上。
- 网站可以结合前两种选项使用。
当您访问一个每次访问都有不同 URL 的网站时(例如 www1.xyz.com、www2.xyz.com、www3.xyz.com 等),那么您就知道该网站在前端使用了第二种方法。通常,该网站会有一组独立机器,每台机器都运行 Web 服务器软件。它们都拥有网站页面的相同副本。传入的页面请求通过以下两种方式之一分摊到所有机器上
- 网站的 域名服务器 (DNS) 可以分发负载。DNS 是一种将域名转换为 IP 地址的互联网服务。每次向 Web 服务器发出请求时,DNS 都会以循环方式轮流使用可用的 IP 地址,以分担负载。各个服务器将对网站的同一组网页拥有共同的访问权限。
- 负载均衡交换机可以分发负载。所有对网站的请求都到达一台机器,然后该机器将请求传递给其中一个可用服务器。交换机可以从服务器中找出负载最小的一个,从而使所有服务器都执行相同的工作量。这就是 十万个为什么 网站使用的服务器方法。负载均衡器将负载分散到三台不同的 Web 服务器之间。其中一台发生故障也不会影响网站。
这种冗余方法的优点是,任何一台机器的故障都不会导致问题——其他机器会接管负载。以增量方式增加容量也很容易。缺点是,如果存在任何事务处理,这些机器仍然必须与某种中央数据库进行通信。
微软的 TerraServer 采用了“单台巨型机器”的方法。TerraServer 存储了数太字节的卫星图像数据,并处理数百万条此类信息请求。该网站使用巨大的企业级机器来处理负载。例如,TerraServer 使用的一台 Digital AlphaServer 8400 拥有八个 440 MHz 64 位处理器和 10 GB 的错误检查和纠正内存。请参阅技术说明以了解一些真正令人印象深刻的规格!
广告