我正在运行部署在EC2实例上的Django网站(在Apache上)。目前它使用单个MySQL实例,但理想情况下我想拥有一个集群。请告知以下可能性的利弊,并列出其他可能的内容:
MySQL群集:如果我在几个EBS实例上部署MySQL,我仍然需要一个分区来拥有一个分布式群集。对此有何解决方案?
Cassandra:如何设置Cassandra与EC2一起使用?另外,如果我目前使用Cassandra,我是否可以使用Django Models的功能,还是可以为Django编写驱动程序插件?
RDS:RDS是否支持群集?到目前为止,我只找到了Master-Slave架构的文档。
谢谢,
-SID
答案 0 :(得分:1)
MariaDB 10将完美地用于此设置。
我们已经在EC2中的4个节点上使用Percona MySQL集群已有2年了,并且它已经完美运行。
答案 1 :(得分:0)
MySQL群集:不确定分区程序的含义。您将需要至少3个实例:1个管理和2个数据节点。 MySQL集群是内存数据库,因此您需要为数据节点提供大内存实例。检查MySQL Cluster文档以进行容量估算。此外,MySQL Cluster需要高速低延迟互连以实现最佳性能。 EC2不是最好的环境。
Cassandra:应该可以正常工作 - http://wiki.apache.org/cassandra/Cassandra%20EC2
RDS:RDS不支持群集。 EC2的高可用性并不容易,因为它无法提供对广播/多播,ARP接管等网络功能的完全访问。有些人正在取得进展:http://www.mysqlperformanceblog.com/2010/06/17/high-availability-for-mysql-on-amazon-ec2-part-1-intro/
请注意:MySQL Cluster和Cassandra是MySQL的不同解决方案。如果您决定进行切换,则需要重新考虑应用程序如何存储和访问数据。