对于那些在全世界各地都有访问速度要求的网站, 他们是怎么做的

KJ
  • 1.1k

对于那些在全世界各地都有访问速度要求的网站, 他们是怎么做的, 比如Gmail.
或许有些网站用户量还没有那么大, 但是已经开始在全世界都有用户. 对于网站速度的抱怨就此开始.

我们的经验是, 数据库通常需要和web/application服务器在一起(内网). 如果所有的数据都被放置在一个机房, 那么如何保证远距离的读取速度.

如果不是, 那么是利用一些缓存机制, 还是需要设计特殊的数据库结构, 或者批量的数据处理?

对于静态内容, 我们可以CDN, 缓存. 对于动态的内容, 有时候缓存会导致更多的麻烦.

在这里向大家请教了 :)

回复
阅读 4.3k
3 个回答

其实这个问题可以换一个角度看,其实不同国家之间的延迟没那么大的,对于用户而言,你的响应时间是20ms还是200ms没那么大差别。而干线网络只要能保证带宽,延时和吞吐还是稳定的,所以在大部分情况下,CDN relay一下也就可以解决问题了,相当于在终端把请求汇聚一下。如果这种链路都不能保证,就只能部署多份服务了,而其实对于搜索一类的服务,数据可以复制多份,随便扩展都是可以的。
最大的问题是带数据库的服务,这里面没啥特别好的办法,一种做法是存多份,多份数据之间保持最终一致性,另一种做法就是使用比较好的cache机制

听幽键客
  • 3
新手上路,请多包涵

分布式不就解决了吗

如果访问量很大了,或者说有很多资金去维持运营,就可以在建立很多机房,机房之间进行热备份,写操作集中在一个机房处理,读操作通过智能路由选择最近的机房读出了。据我所知淘宝就只这么做的,他们在国内至少有2到3个机房。机房之间近实时同步数据。
如果没有那么多钱,可以选一个好的机房,好的机房支持多个线路,出口带宽也很大。一般速度也可以了。

你知道吗?

宣传栏