首先,如果这篇文章很简短,请原谅我,因为我目前正在用手机输入这篇文章。
总的来说,我正在尝试找出设置多台专用机器来托管基于 Web 的应用程序的具体细节。目前我们对此没有直接要求,但预计很快就会有这种需求,我想确保在一切的初始设置中,未来的扩展是一个半顺利的交易,而不是一个巨大的混乱。
我主要关心的是数据库。我们正在使用 mysql,我只见过它在单机环境中作为完整的 lamp 堆栈使用。但我想知道随着它的增长,我将如何使它跨多台机器运行。不仅在物理存储级别,而且在应用程序的可访问性上。我的第一个想法是 2+ 台机器,其中数据库仅在结构上而不是数据上镜像,但我预见到的问题是数据可用性,因为应用程序可能需要机器 1 上的数据,而机器 2+ 上的数据也是需要的,但数据本质上是动态的,需要我查询每个数据库直到找到所需的匹配项,这似乎对处理来说有点过度了。那么,这样一来,机器是否有可能溢出到下一台机器,从而在它们之间形成一个庞大的数据集?
总的来说,就像我说的,它处理存储限制和瓶颈问题,因为我想以一种可以平衡负载的方式来管理它们。
我真的不知道在哪里可以找到其他信息,我的搜索没有找到任何相关信息,这可能是因为我没有找到正确的东西,因此,如果能在这里提出任何建议作为起点/终点,我将不胜感激
答案1
您可以使用 HAProxy 网关来接收所有流量。这将允许您托管多个物理或虚拟服务器。基本上,每个请求都将通过 HAProxy 网关机器,并发送到高可用性集群中的 X 个服务器之一。您的每台服务器都将拥有 WWW 数据,并且您可以拥有一个单独的数据库服务器。MySQL 数据库服务器可以复制或配置在具有托管服务器的集群中。