mysql - 地理冗余和 MySQL 复制

标签 mysql apache replication

我有一个相当简单的站点,使用 LAMP 配置每天可获得 20 万次点击(3-5 次点击/秒)。主机有点不稳定(读作:便宜),所以我们想添加第二台主机以保证正常运行时间(我不会将此称为关键任务,但更多的是防止烦恼)。

MySQL 的空闲速度约为 200 qps,有时会达到 450。

我在主-主和 maatkit 设置方面有一些经验,所以我打算在第二个位置复制站点,使用主-主复制,并使用 maatkit 验证数据并监控 slave-lag 等。

但是,在阅读有关此设置的所有可怕警告时,我正在尝试评估这是否是正确的举动。什么是替代架构?

附加问题:假设您有 2 台服务器,一台在东海岸,一台在西海岸。为这些负载平衡数据库的合理策略是什么?你会让西海岸的apache服务器访问东海岸的mysql吗?这真的是一个选择吗?我认为延迟会降低性能...

有什么想法吗? TIA 迈克

最佳答案

美国的延迟大约为 50 毫秒,因此假设您在每个 http 查询中执行 40-90 个 mysql 查询,您预计 http 查询的延迟至少会增加 2-4.5 秒。这忽略了传输任何大负载所需的时间。你不想为这个应用程序做跨大陆的 mysql。

避免跨大陆 mysql 查询的另一个原因是两个主数据库可能不同步,因此如果您跨两个数据库进行循环查询,用户可能会看到不一致的数据并感到困惑。但是,如果您的本地数据库出现故障,回退到远程数据库是合理的。在这种情况下,您还希望将流量从本地网络服务器转移出去,以避免上述延迟影响。

您需要确保用户坚持使用同一个 apache 服务器,以便他们获得一致的数据 View 。一种简单的方法是将用户从 www.yoursite.com 重定向到 server1.yoursite.com 和 server2.yoursite.com,确保所有 URL 都是相对的。如果一台服务器出现故障,您可以重新指向 DNS,在此之前,用户可能会不断刷新 www.yoursite.com(这将用作 DNS 循环),直到他们获得另一台服务器。这样做的一个危险是用户会将 server1.yoursite.com 添加为书签。

关于mysql - 地理冗余和 MySQL 复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1020469/

相关文章:

javascript - 在页面刷新时加载随机 CSS

php - 数据库切换

mysql - mysql ndb集群数据节点不同步并且对同一查询的不同响应

MySQL:如果不存在则高级插入

php - JSON 编码将数组乘以单个数组

php - 配置 Apache 时出现 "Specified procedure could not be found"错误

apache - 要使用 ServiceMix,我的项目必须是 OSGi 包吗?

MySQL 多个复制用户

php - 将日期格式(在 DB 或输出中)更改为 dd/mm/yyyy - PHP MySQL

mysql - mysql中的触发器不允许某些列对重复值