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控制臺。