如何在AWS上自动调整Cassandra集群,或者如何根据负载动态地为集群节点

问题描述 投票:0回答:1

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

根据应用程序的负载,我需要执行哪些步骤来动态添加/删除节点?

amazon-web-services amazon-ec2 cassandra cassandra-3.0
1个回答
1
投票

不幸的是,放大和缩小响应当前负载并不简单,如果你有一个包含大量数据的集群,这是不可能的:

  • 您不能同时向群集添加多个节点,所有操作都需要是顺序的。
  • 添加或删除节点将需要将数据流入或流出节点;这取决于您的数据大小,以及您使用的EC2实例类型(网络带宽限制);如果您正在使用实例存储或EBS(EBS将限制您的IOPS),也会有差异
  • 您提到您使用AWS并且复制因子为3,您是否也使用不同的可用区域(AZ)?如果你是这样,EC2Snitch将努力确保它们之间的信息平衡,以便具有弹性,当你放大和缩小时,你需要在AZ之间保持均匀分布。
  • 缩放操作将导致令牌分布的重新排列,一旦完成,您将需要进行清理(nodetool cleanup)以删除节点不再使用的数据;这个操作也需要时间。如果你因为空间不足而要扩大规模,这一点很重要。

对于我们的用例,我们采取积极主动的方法取得了良好的效果,我们已经建立了积极的警报/监控策略以便及早发现,因此我们可以在出现性能影响之前启动扩展操作。如果您的应用程序或用例具有可预测的使用模式,那么还可以帮助您在准备高工作负载期间采取措施。

© www.soinside.com 2019 - 2024. All rights reserved.