MySQL 和 Apache 集群

MySQL 和 Apache 集群

首先抱歉,如果我写得不好,我的英语就不好。

嗯,我有这些服务器:

在此处输入图片描述

1 号服务器的工作量很大,所以我想建立一个由 4 台虚拟机组成的集群系统。

我不知道如何开始,目前我只有带有操作系统的服务器 3、4、5 和 6。

我可以使用哪种集群软件?

我可以在虚拟机上正常安装 apache 和 mysql 吗?或者我必须安装这些软件的特定版本?

答案1

我建议一些简单的事情Percona XtraDB集群适用于 MySQL。它是 MySQL 的优化版本,仍然免费,并考虑到了集群。

对于 Apache,我只需 rsynchttpd.conf或将任何对备用主机有效的配置文件同步即可。

您是否想要实现负载平衡效果或主动/被动待机?

答案2

所以基本上你需要使用一些工具来简化你的 apache 设置,你可以看看 peacemaker 或 Heartbeat-Ha,对于 mysql 我不是专家,但我认为可以使用 peacemaker 或通过 mysql 本身来完成,请看这里: http://www.mysql.com/products/cluster/

祝你好运

答案3

我认为您需要再问自己几个问题,以便准确确定您需要或想要的设置。有很多可能的配置,具体取决于您的应用程序和要求:

  • 您想要负载平衡系统、高可用性 (HA) 系统还是两者兼而有之?从您的问题来看,我猜您只是在寻找负载平衡,以减少服务器 1 上的负载并将其分配给服务器 3-6。简单的负载平衡系统比 HA 系统更容易设置。
  • 您当前在服务器 1 上的负载分布情况如何?您的 CPU 受限、磁盘 IO 受限、内存受限还是其他什么原因?例如,如果您在服务器 1 上对 Apache/MySQL 的配置不当,那么 4 个配置错误的服务器不会有太大帮助。如果您的 IO 受限,那么将单个服务器拆分为 4 个 VM 可能也不会有太大帮助。
  • Apache、MySQL 还是两者都消耗了大部分资源?如果 MySQL 占用了 90%,那么负载平衡 Apache 可能不值得(反之亦然)。
  • 您的应用程序是否可以轻松实现负载平衡?如果不能,这可能会限制您能够轻松完成的操作。
  • 您有任何缓存层吗?或者您可以添加任何缓存层吗?这包括 Squid、MemCached、Varnish 等。根据您的应用程序,您可能能够大幅减少 Apache/MySQL 方面的负载(例如,在我的情况下,80-90% 的页面浏览量使用 Squid 缓存,这可以减少 5-10 倍的负载)。

在不了解你的具体情况的情况下,我会建议如下:

  • 服务器 3:Squid/Varnish 缓存和主入口点(假设您的应用程序完全可缓存)
  • 服务器 1:MySQL Master(所有数据库写入)
  • 服务器 5:MySQL 从属服务器(所有数据库读取)
  • 服务器 6:Apache
  • 服务器 4:Apache

答案4

集群数据库的 Pacemaker

Keepalive 或 nginx(代理)用于具有类型共享/故障转移的 apache 负载平衡

相关内容