我的网站在stream量方面一直在增长,而mysql的负载也在不断增长。 我想要一个解决scheme,以帮助处理增加的MySQL负载(所有查询已经优化),因为stream量+备份服务器的增加可以作为一个故障转移,如果我的主服务器出现故障。
我已经阅读了关于设置多个Web和数据库服务器的问题,但是有几个问题:
1)如何在维护相同的内容的同时设置多个Web服务器(每次更新或者以其他方式时,是否必须将file upload到所有服务器?)
2)同样,如果我不得不把数据库扩展到多个服务器,除了复制之外还有别的办法,或者是复制mysql是最好的办法。
3)我已经读过,从Web服务器分离数据库是一个好主意,为什么呢? 如果我有2个服务器,我不能同时拥有这两个服务器上的数据库和文件。
4)是否有必要的负载均衡器,它是否有助于平衡MySQL查询以及如果复制设置?
只是非常困惑,想要一些帮助。
传统的设置将是分开您的networking/应用程序服务器和您的数据库服务器。 把它们放在同一个盒子里将是相当严格的。 如果您的Web应用程序由静态和dynamic内容组成,那么进一步分离(单独的Web服务器,应用程序服务器和内容服务器)将会提高性能。
就MySQL而言,你可能想要尝试一下;
1)如何在维护相同的内容的同时设置多个Web服务器(每次更新或者以其他方式时,是否必须将file upload到所有服务器?)
情况变得越来越复杂。 开始时,您只需手动将所有内容同时部署到所有服务器。 你可以写一个脚本来做到这一点。
你可以做的更大, configurationpipe理软件可以帮助。 另外, OpenEFS将是一个合适的解决scheme。
使用静态内容和某些types的内容,可用的选项更多。 这些决定是因为当你试图通过负载平衡的应用程序本身来修改或上传内容时更加明显,就好像你处理不好,你会导致数据分区。 例如,上传的文件将只在其中一个负载平衡的服务器上。
没有特别的顺序:
2)同样,如果我不得不将数据库扩展到多个服务器,除了复制之外还有其他的方法,或者是复制mysql的最好方法。
这取决于您的最终目标:一致性,可用性或分区容差。 妥协可能是必要的。 这是一个膨胀的主题,你可以通过阅读高性能MySQL等书籍获益。 常用选项:
MySQL还发布了各种白皮书 。
3)我已经读过,从Web服务器分离数据库是一个好主意,为什么呢? 如果我有2个服务器,我不能同时拥有这两个服务器上的数据库和文件。
将angular色转化为目标更好,因为它降低了复杂性和安全风险。 您可能会从至less两个负载均衡器,两个数据库服务器和两个Web服务器中受益。 请注意附加的故障点,因为高可用性不会在此停止。 您的networking可能会成为下一个明显的单点故障。
它还支持标准构build,缩放和转移angular色,而且复杂性较低。 尽pipe如此,这些function并不是独立于分离服务器angular色的。
4)是否有必要的负载均衡器,它是否有助于平衡MySQL查询以及如果复制设置?
对于写查询和MySQL,纵向扩展通常更容易。 横向扩展,这将是许多现代解决scheme的首选,你需要使用一个体系结构,如分片 。 理想情况下,您的应用程序将不得不被devise为支持。 还有我通常会担心的各种中间件解决scheme。
您可以轻松地将负载平衡到MySQL复制从属服务器,这将允许您使用负载均衡的VIP进行只读查询。