0

我很想知道在用户写的和读的一样多的情况下,大型网站如何在不同的数据库服务器之间分配负载,即。当一个主服务器接受写入,几个从服务器只让用户读取数据的标准解决方案不起作用时,因为它只会将主服务器变成瓶颈。

对于那些使用负载均衡器管理大型站点的人 -> 多个 Web 服务器 -> 多个 DB 服务器,您如何在 DB 服务器之间平均分配负载,以便用户(充其量)不必等待master 更新从属,或者(最坏的情况)用户最终从尚未更新的从属读取脏数据?

谢谢你。

4

1 回答 1

0

我们还没有完全达到我们的主数据库服务器成为瓶颈的地步,但它正在迅速逼近。我们有 70% 的读取/30% 的写入拆分。

有几种解决方案,没有一个很有趣。我们被 MySQL 困住了,所以我们的主要选择是:

  • 把硬件扔到问题上。这是我们多年来一直遵循的策略,到目前为止它对我们很有帮助。不幸的是,我们的增长曲线意味着我们不会在很长时间内摆脱这种局面。
  • 多主 MySQL 设置。看看高性能 MySQL的第 8 章中的“复制拓扑”,看看我在说什么。如该部分所述,复制不是扩展写入的好选择。
  • MySQL 集群。我仍然需要对此进行适当的研究并对其进行测试,看看我们是否可以提高我们的写入性能。
  • 修补我们的软件以减少每次操作的写入。这已经部分完成了,但我不知道我们还能从中挤出多少。
  • 为我们的软件打补丁,将写入分片到多个独立的 master 上。这是非常痛苦的,如果可能的话,我想避免这样做。
  • 修补我们的软件以减少对 MySQL 的依赖,并找到另一个 SQL 数据库,它可以为我们提供更好的写入扩展选项。

它们是我目前拥有的选项,但如果您正在使用不同的数据库,或者如果您刚开始并且可以选择,您的选项可能会完全不同。

于 2009-12-01T16:26:22.807 回答