gpt4 book ai didi

mysql - 从 1 个 Web 服务器 + 1 个数据库服务器进行扩展

转载 作者:行者123 更新时间:2023-11-29 09:21:46 24 4
gpt4 key购买 nike

我们是一家 Web 2.0 公司,使用 LAMP 从头开始​​构建托管内容管理解决方案。简而言之,人们登录我们的后端来管理他们的网站内容,然后使用我们的 API 提取该内容。该 API 插入到可以托管在互联网上任何地方的模板中。

我们的扩展进展如下:

  1. Shared hosting (1and1)
  2. Dedicated single server hosting (Rackspace)
  3. 1 Web Server, 1 DB Server (Rackspace)
  4. 1 Backend Web Server, 1 API Web Server, 1 DB Server
  5. Memcache, caching, caching, caching.

问题是,我们下一步该做什么?每当我们的网站被挖掘或在热门网站中提及时,我们的 API 服务器就会因连接过多而崩溃。或者每次我们的数据库服务器因查询而溢出时,我们的 Web 服务器就会请求备份。

对于像我们这样的任何公司来说,这显然是“下一个问题”,我想知道您是否能为我指出一些方向。

我目前对虚拟化解决方案(例如 EC2)很感兴趣,但需要一些关于需要考虑的事项的指导。

最佳答案

扩展内容/地点/方式取决于您的问题是什么。由于您已经被攻击过几次,而且您知道是 API 服务器造成的,因此您需要确定到底是什么导致了问题。

是数据库查找时间吗?

网络服务器无法处理大量请求,即使它们是短暂的?

API 请求处理时间太长? (独立于数据库查找,例如,代码是否需要一些时间才能运行)?

一旦确定问题是什么,您应该非常清楚地了解需要做什么。如果只是请求量,并且是 API 服务器,那么您只需要更多的 Web 服务器(以及代码更改以允许水平扩展)或更强大的 Web 服务器。如果 API 请求花费的时间太长,您需要考虑代码优化。在可扩展性方面,从来没有一劳永逸的解决方案。

最常见的扩展问题与每个请求的实际代码执行缓慢(2-3 秒)有关,这反过来会导致更多的 Web 服务器,从而导致更多的数据库交互(对于跨服务器 session ,等)这会导致数据库性能问题。使用 memcache 的高性能、服务器独立代码(我实际上更喜欢 memcache 周围的包装器,因此应用程序不知道/关心它从哪里获取数据,只是它获取数据并且转换层处理 DB/memcache 查找以及填充内存缓存)。

关于mysql - 从 1 个 Web 服务器 + 1 个数据库服务器进行扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1562910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com