如果您的业务有明显的高低峰期规律,且会因为计算资源(CPU、内存)不足而出现性能瓶颈,例如在线教育、同城物流、电商搜索、直播等业务,可通过阿里云Elasticsearch的弹性扩缩功能,在业务高峰和低峰期,分别增加和减少计算资源,充分使用集群资源,节省额外支出。本文介绍如何使用弹性扩缩功能。
应用场景
弹性扩缩功能适用于具有明显高低峰期规律,且会因为计算资源(CPU、内存)不足而出现性能瓶颈的业务场景。这类业务高峰期的流量是低峰期的数倍,时间较短且规律性强,使用弹性扩缩功能对于成本的节省会更加明显。
以某教育行业客户为例,业务的高峰期只有白天14:00~21:00这7个小时,查询QPS(Query Per Second)大约在3千左右;而剩余低峰期的17个小时仅有最多400的QPS,即低峰期实际需要的资源仅仅是高峰期的1/7。当您在阿里云Elasticsearch中配置了定时弹性扩缩后,可以大大降低业务低峰期的计算资源成本,使总体的集群使用成本降低一半以上。不仅可以使集群资源得到充分利用,还可以为您节省更多的额外支出。
操作流程
步骤一:规划弹性扩缩方案
注意
- 弹性扩缩操作会触发集群重启,集群变更后重启实际时长与集群规模、数据量及负载情况等有关系,建议在业务高峰来临前完成扩缩。
- 如果集群索引存在副本分片且集群负载处于正常水平(CPU使用率在60%左右,堆内存使用率在50%左右,load_1m低于CPU核数),一般情况下,在集群重启过程中可持续对外提供服务。
- 如果集群负载过高且索引没有副本,同时在弹性扩缩过程中存在大量的写入或查询等情况,可能在弹性扩缩过程中业务会出现偶发的访问超时现象。建议在弹性扩缩操作前,在客户端访问机制中配置重试机制,以减小对业务的影响。
步骤二:开启弹性节点
参见创建阿里云Elasticsearch实例,在创建阿里云Elasticsearch实例时,开启弹性节点。

注意
- 弹性节点仅支持单可用区实例。
- 创建实例时,如果未开启弹性节点,实例创建后,可通过升配集群开启。
- 在创建实例时,无论付费模式为包年包月还是按量付费,弹性节点统一采用按量付费的模式计费,计费的详细信息请参见Elasticsearch计费项。
- 弹性节点架构依赖专有主节点,购买弹性节点时,会默认购买最低规格的专有主节点。
- 创建实例时,不支持仅购买弹性节点,而不购买数据节点。
步骤三:配置弹性索引
由于弹性索引会涉及到高低峰期扩缩副本的操作,因此建议将高低峰期资源占用变化较明显的业务索引独立分配到弹性节点,其他非弹性索引分配到普通的数据节点。以实现轻量化的资源隔离,最大程度保证业务整体的稳定性。登录Kibana控制台,执行以下命令,配置弹性索引:
步骤四:配置弹性任务
通过配置弹性扩缩任务,您可以在业务高低峰来临前,合理调配资源,提升业务稳定性及可用性。
步骤五:查看弹性任务变更记录
- 登录阿里云Elasticsearch控制台。
- 在左侧导航栏,单击操作记录,查看弹性任务的变更操作记录。