当前位置:  开发笔记 > 编程语言 > 正文

网站硬件缩放

如何解决《网站硬件缩放》经验,为你挑选了1个好方法。

所以我正在收听最新的Stackoverflow播客(第19集),Jeff和Joel谈到了随着网站的发展而扩展服务器硬件的问题.从Joel的说法来看,前几个步骤非常标准:

    一台服务器同时运行Web服务器和数据库(当前的Stackoverflow设置)

    一个Web服务器和一个数据库服务器

    两个负载均衡的Web服务器和一个数据库服务器

他们并没有谈论下一步会发生什么.你添加更多的网络服务器?另一个数据库服务 在不同的数据中心中复制这个三机群集以实现冗余?网络创业公司在硬件部门从哪里开始?



1> Rob..:

支持"普通"Web应用程序的合理设置可能会演变如下:

    单一组合应用/数据库服务器

    在另一台机器上分开数据库

    具有DNS循环(穷人的负载平衡)的第二个应用服务器,或者例如Perlbal

    其次,复制数据库服务器(对于读取加载,需要一些应用程序逻辑更改,因此符合条件的数据库读取转到从属)

此时,评估当前状态将有助于确定更好的缩放路径.例如,如果读取负载很高且内容不会经常更改,那么最好强调缓存并引入专用的前端缓存,例如Squid以避免不需要的数据库读取,尽管您需要考虑如何保持缓存一致性,通常在应用程序中.

另一方面,如果内容经常变化,那么您可能更喜欢更广泛的解决方案; 引入一些应用程序服务器和数据库从属服务器以帮助缓解这些影响,并使用对象缓存(例如memcached)来避免因不易变质的内容而访问数据库.

对于大多数网站来说,这可能就足够了,但如果你确实成为一个全球现象,那么你可能会想开始考虑在区域数据中心使用硬件,并使用地理负载平衡等技巧将访问者引导到最近的"集群" ".到那时,你可能会聘请能够真正微调事物的工程师.

我能想到的最有价值的扩展建议可能是为了避免过早担心这一点; 专注于开发人们想要使用的服务,并使应用程序相当健壮.一些简单的早期优化是为了确保您的数据库设计相当稳固,并且设置了索引,这样您就不会做任何痛苦的事情.此外,请确保应用程序发出缓存控制标头,以指导浏览器如何缓存数据.在设计早期进行此类工作可以在以后产生效益,尤其是当您不必重新处理整个事情来处理缓存一致性问题时.

我想提出的第二个最有价值的建议是,你不应该假设哪些其他网站适用于你; 检查您的日志,对您的流量进行一些分析并分析您的应用程序 - 查看您的瓶颈所在并解决它们.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有