我正在研究 Rails 应用程序的高可用性数据库主题。我正在寻找基于开源的解决方案。
目前我们的系统运行在一台应用程序主机 + 一台数据库主机上,这意味着其中任何一台发生故障,我都会有麻烦。我更希望将此配置翻倍,如果可能的话,在不同的站点上运行它们(但这不是必需的)。
第一个想法是主动-主动复制,但 Postgresql 在这方面似乎很弱,而 MySQL 也不太稳定(http://www.mysqlperformanceblog.com/2007/03/15/mysql-myisam-active-active-clustering-looking-for-trouble/)我正在考虑 VoltDB,它似乎是一个很有吸引力的话题,而且似乎可以与 Rails 一起使用。
日志共享似乎是一个不错的想法,但我对这个概念还不太熟悉,我想知道这种解决方案的成本以及 MySQL 将如何使用它。我猜它排除了在两个不同站点运行应用程序的任何方式。
我确实需要一些建议,所以请随意提问并提出解决方案。我会编辑这篇文章以添加任何必要的信息。
答案1
您可以使用 HaProxy。
您可以将 Haproxy 配置为故障转移、复制或负载均衡器
http://www.alexwilliams.ca/blog/2009/08/10/using-haproxy-for-mysql-failover-and-redundancy/
答案2
VoltDB 原生支持 HA,我们实际上希望人们在商品服务器集群上运行它。