我可以在aws autoscale下添加aerospike集群吗?喜欢 。我的初始自动缩放组大小将为3,如果有更多流量进入,如果cpu利用率大于80%,那么它将向集群中添加另一个实例。你觉得有可能吗?它有任何缺点或会在群集中产生任何问题吗?
答案 0 :(得分:2)
aerospike/aws-cloudformation上的Amazon CloudFormation脚本提供了如何启动此类群集的示例。
但是,自动缩放的目的是增加无共享工作节点,例如webapps。这些节点通常没有任何共享数据,您只需启动一个新节点即可开始工作。
将节点添加到像Aerospike这样的分布式数据库的目的是拥有更多的数据容量,并在更多节点之间平衡数据,从而提高处理操作(读取,写入等)的能力。自动调节Aerospike可能无法按预期工作。这是因为当一个节点被添加到集群时,会形成一个新的(更大的)cluster,并且数据自动平衡。平衡的一部分是在节点之间迁移partitions数据,并且当每个节点上的分区数量再次(因此数据均匀地分布在集群的所有节点上)时结束。迁移很重,占用了网络带宽。
如果您可以在流量峰值之前将其计时,将工作,因为迁移可以提前完成,您的群集将为下一个峰值做好准备。您不希望这样做作为峰值流量,因为它只会让事情变得更糟。您还希望确保在集群合同时有足够的空间容纳数据,为主索引提供足够的DRAM,因为两者的每个节点使用量都会增长。
在Aerospike中增加额外容量的另一点是允许rolling upgrades,其中一个节点一次进行升级而无需拆除整个群集。 Aerospike通常用于realtime applications,不需要停机。至少你的集群需要能够处理一个节点,并且有足够的capacity来解决这个问题。
作为一个注释,您可以很好地控制迁移发生的速度configuration,但如果您使流程不那么激进,它们的运行时间会更长。