我查看了 Stack Exchange 服务器:
似乎他们只有两个数据中心,有 11 台服务器。没有提到 CDN,我认为这是不可能的,因为他们使用的是服务器端 html 渲染(ASP.Net)。
但是,我觉得他们的速度和谷歌一样快(谷歌拥有无数台服务器)。这怎么可能呢?
答案1
他们确实使用 CDN。目前是 Fastly:https://www.fastly.com/network-map。
答案2
阅读 Nick 的博客系列Stack Overflow:技术解构。Stack Exchange 是一种传统的架构,由几架本地服务器组成,后面是内容分发网络 (CDN)。正如该系列文章中多次提到的那样,“性能是一种特性”,即对速度的狂热关注。大多数请求都打到全球 CDN。Web 服务器请求可能缓存在内存中 - 缓存动态内容是绝对可能的。实际数据库命中率经过优化,以至于他们编写了自定义 ORM 软件。当性能成为一种特性时,即使是来自半个地球的缓慢路径也会显得非常快。
尽管 Google 和 Stack Exchange 都聘用了注重速度的员工,但规模却截然不同。Google 会尝试索引全部有史以来最丰富的信息,并出租足够的计算资源,成为最大的云之一。Stack Exchange 是几 TB 的热门问答信息。SE 在搜索引擎影响力和我的偏好方面绝对超越了它的重量。部分原因是速度快,部分原因是不断增长的真正回答问题的社区。
答案3
你可以使用 fastly 查看它们的 varnish 缓存头:
$ curl -sSIL stackoverflow.com
HTTP/1.1 301 Moved Permanently
cache-control: no-cache, no-store, must-revalidate
location: https://stackoverflow.com/
server: Microsoft-IIS/10.0
x-flags: AA
x-aspnet-duration-ms: 0
x-request-guid: 6fa7e0c9-dfcb-4bf7-95fc-a7d6b6a0b29b
x-is-crawler: 1
x-providence-cookie: 942d24a0-db65-949e-1ef6-25b4bd2e0927
feature-policy: microphone 'none'; speaker 'none'
content-security-policy: upgrade-insecure-requests; frame-ancestors 'self' https://stackexchange.com
Accept-Ranges: bytes
Date: Fri, 26 Mar 2021 15:39:52 GMT
Via: 1.1 varnish
Connection: keep-alive
X-Served-By: cache-ams21076-AMS
X-Cache: MISS
X-Cache-Hits: 0
X-Timer: S1616773192.208295,VS0,VE76
Vary: Fastly-SSL
X-DNS-Prefetch-Control: off
Set-Cookie: prov=942d24a0-db65-949e-1ef6-25b4bd2e0927; domain=.stackoverflow.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly
HTTP/2 200
cache-control: private
content-type: text/html; charset=utf-8
server: Microsoft-IIS/10.0
strict-transport-security: max-age=15552000
x-route-name: Home/Index
x-frame-options: SAMEORIGIN
x-flags: AA
x-aspnet-duration-ms: 3
x-request-guid: 6dea1d9b-ee1c-46f0-9d8b-042cf588aa45
x-is-crawler: 1
x-providence-cookie: ce7f511e-4a12-023f-eef8-28f1d2742f65
feature-policy: microphone 'none'; speaker 'none'
content-security-policy: upgrade-insecure-requests; frame-ancestors 'self' https://stackexchange.com
x-page-view: 1
accept-ranges: bytes
date: Fri, 26 Mar 2021 15:39:52 GMT
via: 1.1 varnish
x-served-by: cache-ams21050-AMS
x-cache: MISS
x-cache-hits: 0
x-timer: S1616773192.383164,VS0,VE79
vary: Fastly-SSL
x-dns-prefetch-control: off
set-cookie: prov=ce7f511e-4a12-023f-eef8-28f1d2742f65; domain=.stackoverflow.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly