amazon-web-services - 使用自动缩放将节点添加到现有的 aerospike 集群

标签 amazon-web-services autoscaling aerospike

我可以在 aws autoscale 下添加 aerospike 集群吗?喜欢 。我的初始自动缩放组大小将为 3,如果有更多流量进入并且 cpu 利用率大于 80%,那么它将向集群中添加另一个实例。你认为这可能吗?它有什么缺点或会在集群中产生任何问题吗?

最佳答案

aerospike/aws-cloudformation 处有一个 Amazon CloudFormation 脚本这给出了如何启动此类集群的示例。

但是,自动缩放的目的是增加无共享工作节点,例如网络应用程序。这些节点上通常没有任何共享数据,您只需启动一个新节点即可开始工作。

向像 Aerospike 这样的分布式数据库添加一个节点的目的是为了拥有更多的数据容量,并在更多的节点上均衡数据,从而提高处理操作(读取、写入等)的能力。自动缩放 Aerospike 可能不会像您预期的那样工作。这是因为当一个节点被添加到集群时,一个新的(更大的)cluster形成,数据自动平衡。平衡的一部分正在迁移 partitions节点之间的数据,当每个节点上的分区数再次偶数时结束(因此数据均匀分布在集群的所有节点上)。迁移繁重,占用网络带宽。

如果您可以将它安排在流量高峰之前发生,这将会起作用,因为这样迁移就可以提前完成,并且您的集群将为下一个高峰做好准备。 您不希望在高峰流量出现时执行此操作,因为这只会让事情变得更糟。您还需要确保当集群收缩时有足够的空间容纳数据,有足够的 DRAM 用于主索引,因为两者的每个节点使用量都会增长。

在 Aerospike 中拥有额外容量的另一点是允许 rolling upgrades ,其中一个节点一次进行升级,而无需关闭整个集群。 Aerospike 通常用于 realtime applications无需停机。至少你的集群需要能够处理一个节点宕机并且有足够的 capacity收拾残局。

请注意,您的颗粒很细 configuration控制迁移发生的速度,但如果您降低流程的积极性,它们运行的​​时间会更长。

关于amazon-web-services - 使用自动缩放将节点添加到现有的 aerospike 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34759291/

相关文章:

amazon-ec2 - 在多个可用区运行 ELB 是否成本更高?

Azure 自动缩放减少计数不起作用

amazon-web-services - 有没有办法从 CodeDeploy 部署 Helm Chart?

amazon-web-services - 在Grails中使用签名的S3网址上传到Amazon S3

amazon-web-services - 在 redshift 中查询外部表时获取 0 行

azure - 自动扩展到 Azure 中的下一个应用程序服务计划级别

amazon-web-services - 基于 SQS 队列大小的自动缩放

go - Benchmark 给出命令执行超时

performance - 如何在两个版本不同的Aerospike群集3.8和3.14之间比较服务器端的延迟和超时?

aerospike - 如何找出 Aerospike 中的 Set 占用了多少磁盘空间?