负载平衡 - 多个位置

负载平衡 - 多个位置

目前,我们在一个位置拥有 MySQL 主/从配置 - 每个客户都有单独的数据库,而且数量正在迅速增长。我计划在不同位置创建另一对数据库服务器,并使用某种负载平衡,如 DNS 循环 (DynDNS)。

我不确定这是否真的有效,因为会有一对指向特定数据库服务器的 Web 服务器:

  1. Web 服务器 A => 主数据库服务器 A => 从属数据库服务器 A
  2. Web 服务器 B => 主数据库服务器 B => 从属数据库服务器 B

“集群” A 和 B 之间不会有任何复制,因此如果 DynDNS 将客户端的请求指向 Web 服务器 A,但数据库将位于“集群” B 上,这是否不起作用?

我想请教一下,在这种情况下最好的解决方案是什么。如何配置它以便将来可以水平扩展它?

答案1

有一个版本支持集群的 MySQL,而不仅仅是主/从复制。这可能更适合您的要求。

MySQL Cluster 是一种可写入扩展、实时且符合 ACID 要求的事务型数据库,旨在提供 99.999% 的可用性。MySQL Cluster 采用分布式多主架构,没有单点故障,可在商用硬件上水平扩展,并具有自动分片(分区)功能,可通过 SQL 和 NoSQL 接口访问读写密集型工作负载。

答案2

Mysql Cluster 是我的选择,它将使您能够水平且分别地扩展您的存储和计算能力:http://dev.mysql.com/doc/index-cluster.html 您还可以使用 haproxy 或 ldirectord 进行故障转移。请参阅本文以供参考:http://flavio.tordini.org/a-more-stable-mysql-with-haproxy

答案3

关于用户会话还有一个问题。如果我使用 DNS 负载平衡,并且客户端将在网站上插入一些数据,如果他/她点击刷新按钮并且 DNS 记录发生变化,会发生什么?这会起作用吗?还是我需要一些更好的负载平衡实用程序,如 Haproxy 或 Nginx?

问候

相关内容