gig流控插件是阿里云Elasticsearch团队自主研发的协调节点流控插件,集成了淘宝搜索核心的流控能力。针对分布式环境中,偶发的节点异常导致的查询抖动问题,能够做到秒级切流,最大程度降低业务抖动概率,保证查询业务平稳运行。同时能够通过流量探测的方式,解决冷节点上线导致的查询延迟飙升问题,实现在线服务的查询预热功能。本文介绍gig流控插件的使用方法。
背景信息
gig流控插件的原理如下:
- 插件工作在协调节点上。针对高查询QPS的应用,业务通常使用多副本横向扩展的方式实现吞吐线性增长。当协调节点从多个副本中挑选合适的副本提供查询服务时,插件能够帮助协调节点做出最优决策,尽量选择服务能力最高的节点进行服务。
- 插件以查询延迟时间作为节点服务能力的判断标准,内部通过PID算法实时协调服务节点,确保协调效率快速准确。当节点服务质量出现问题(一般体现为查询延迟飙升或错误率上升)时,插件能够通过PID算法实时收集分析服务节点指标,快速做出反应,屏蔽异常节点,实现故障后的秒级切流。
- 当新节点上线加入集群时,为避免业务流量直接输入到服务能力未达标的节点,导致延迟飙升,插件会实时采样在线查询流量,复制部分查询请求流量,输入到新节点(这部分流量称为探测流量),并丢弃查询结果。通过一段时间的探测及指标收集,当插件判断新节点的延迟回到正常范围,就会将正式的线上流量输入到新节点上,提供线上服务。
使用限制
仅满足以下版本要求的阿里云Elasticsearch实例支持gig流控插件:
- 实例版本:6.7.0或7.10.0
- 内核版本:1.3.0及以上,1.6.0以下
注意 如果内核版本不满足要求,在使用前需要升级内核版本,具体操作请参见升级版本。阿里云Elasticsearch 6.7.0支持升级的版本包括:通用商业版0.3.0、1.0.2和1.2.0,不支持1.0.1。
注意事项
- 阿里云Elasticsearch 6.7.0的内核版本升级至1.3.0时,会自动安装,无需再次手动安装。安装后,插件的流控功能默认关闭,使用前需要手动开启。
- 阿里云Elasticsearch实例版本为7.10.0时,gig流控插件默认集成在aliyun-qos集群限流插件中,不需要单独安装。
- 使用gig流控插件前,需要确保所有数据节点预留充足的资源。因为当其中一个数据节点出现服务质量问题时,流量将切换至其他节点上,导致相应节点压力增加,因此需要保留充足的资源保证业务平稳运行。
- 本文中的命令,均可在Kibana控制台上执行。登录Kibana控制台的具体操作步骤,请参见登录Kibana控制台。