如何使多个读/写DB服务器保持同步?

时间:2009-08-25 22:44:05

标签: database load-balancing

我很想知道在用户写入的时间内,大型网站如何在不同的数据库服务器之间传播负载,即。当有一个主设备接受写入的标准解决方案时,几个只允许用户读取数据的从设备不起作用,因为它只是将主服务器变成了瓶颈。

对于那些使用负载均衡器管理大型网站的人 - >多个Web服务器 - >多个数据库服务器,如何在数据库服务器之间均匀分布负载,以便用户(最多)不必等待主服务器更新从服务器,或者(最坏情况下)用户最终从从服务器读取脏数据尚未更新?

谢谢。

1 个答案:

答案 0 :(得分:0)

我们还没有达到我们的主数据库服务器是瓶颈但它快速接近的程度。我们有70%的读取/ 30%的写入分割。

有几个解决方案,其中没有一个很有趣。我们坚持使用MySQL,所以我们的主要选择是:

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

他们是我目前的选择,但如果您正在使用其他数据库,或者如果您刚开始并可以选择,那么您的选择可能会完全不同。