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

add node to existing aerospike cluster using autoscale

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

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

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

将节点添加到像 Aerospike 这样的分布式数据库的目的是为了拥有更多的数据容量,并在更多节点之间均衡数据,这使您能够增强处理操作(读取、写入等)的能力.自动缩放 Aerospike 可能不会像您预期的那样工作。这是因为当一个节点被添加到集群时,节点之间的新的(更大的)cluster is formed, and the data is automatically balanced. Part of balancing is migrating partitions 数据,并且当每个节点上的分区数再次偶数时它结束(因此数据均匀分布在集群的所有节点上)。迁移量大,占用网络带宽。

这个 如果你能安排它在流量高峰之前发生,因为这样迁移就可以提前完成,你的集群就会为下一次做好准备顶峰。您不希望这样做 ,因为 高峰流量正在发生,因为这只会让事情变得更糟。您还需要确保当集群收缩时,有足够的空间容纳数据,有足够的 DRAM 容纳 primary-index,因为两者的 per-node 使用率都会增长。

在 Aerospike 中拥有额外容量的另一点是允许 rolling upgrades, where one node goes through upgrade at a time without needing to take down the entire cluster. Aerospike is typically used for realtime applications that require no downtime. At a minimum your cluster needs to be able to handle a node going down and have enough capacity 收拾残局。

请注意,您可以精细地 configuration 控制迁移发生的速率,但如果您降低进程的积极性,它们 运行 的时间会更长。