如何在AWS上自动扩展Cassandra群集或如何根据负载动态地动态连接到群集

时间:2019-04-13 05:02:59

标签: amazon-web-services amazon-ec2 cassandra cassandra-3.0

我一直在尝试在Amazon EC2实例上自动缩放具有复制因子3和一致性级别1的3节点Cassandra群集。

我需要执行哪些步骤以根据应用程序负载动态地向cluser添加/删除节点?

1 个答案:

答案 0 :(得分:1)

不幸的是,根据当前负载进行向上和向下缩放并不是一件容易的事,并且如果您的集群中包含大量数据,将无法实现:

  • 您不能同时将多个节点添加到群集,所有 操作必须是顺序的。
  • 添加或删除节点需要将数据流进出 节点;这将取决于您数据的大小以及 您正在使用的EC2实例类型(用于网络带宽限制); 此外,如果您使用实例,也会有所不同 存储或EBS(EBS将限制您的IOPS)
  • 您提到您正在使用AWS且复制因子为3, 您是否还在使用其他可用区(可用区)?如果你是, EC2Snitch将努力确保信息平衡 为了保持弹性,在您进行扩展时, 向下,您将需要在AZ之间保持均匀分布。
  • 缩放操作将导致分配的重新排列 令牌,一旦完成,您将需要进行清理 (nodetool cleanup)来删除不再使用的数据 节点;此操作也将花费时间。这对 请记住,如果您因用完而扩大规模 空间。

对于我们的用例,我们采用积极的方法取得了良好的效果,我们建立了积极的警报/监视策略以进行早期检测,因此我们可以在不影响性能的情况下开始进行扩展操作。如果您的应用程序或用例具有可预测的使用模式,那么它也可以帮助您在准备高工作量期间采取行动。