当前位置:  开发笔记 > 后端 > 正文

从一台服务器扩展到多台服务器

如何解决《从一台服务器扩展到多台服务器》经验,为你挑选了1个好方法。

让我们假设我正在运行两个服务器:一个用于网站,另一个用于数据库.
显然,两个服务器都会出现瓶颈.

此时需要做什么?有什么最佳做法吗?

使用AppEngine,Appfog等云服务有什么好处?

我是这个区的新手所以请耐心等待:)



1> 小智..:

您的应用程序有2层,App服务器层(用于Web站点)和DB的数据库层.缩放这些中的每个都会产生很多不同的后果.通常,缩放app服务器层很容易,特别是如果你不存储状态(即每个请求是独立的).您可以在应用服务器层前使用负载均衡器,并根据需要添加/删除应用服务器.

扩展数据库层是一个更大的讨论,您需要评估.这取决于您使用的数据库类型(例如,MySQL或像MongoDB这样的NoSQL/Document引擎).较新的NoSQL/Document引擎提供了扩展功能,如果您只需要一次独立访问一个东西,比如一个对象或一个文档,那么它适用于许多应用程序.如果您需要保证交易的关系数据,那么因为您有购物车,那么使用这些工具可能更具挑战性,而关系数据库与交易是更典型的选择.

要扩展关系数据库,第一步通常是使用只读从属进行负载平衡,这是主服务器的重复(通过复制),您可以将更重的读取指向从属.从站通常不保证始终是最新的,因此如果它们稍微落后(例如长时间运行的报表类型查询或对数据变化不大的查询),则需要将读取发送到从站.

之后需要一个完整的扩展解决方案,有很多方法可以解决这个问题.有些是"自己动手"的解决方案,有些是商业性的.通常,如果您有非常繁重的写入负载并且无法再使用更大的数据库服务器,或者您需要分发大量数据(通常将100个GB分配给多个TB),则需要这样做,并且您需要对该数据进行快速查询.这是一个很大的主题,但你可以看看各种解决方案.我会说我们是这样的供应商,所以我有偏见:),但是如果你需要在成长过程中采取这种方式,你真的应该学到更多.

最好的建议是先做更简单的事情,并为满足您需求的数据库层规划更长期的可扩展性策略.

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