更新时间:2023-06-20 GMT+08:00

背景信息

特性介绍

云搜索服务支持流量控制特性,提供节点级别的流量控制功能,可提供单个节点基于黑白名单的访问限制、HTTP并发连接数限制、HTTP最大连接数限制、基于请求Path的堆内存最大使用量流控能力、基于CPU最大占用率流控能力,一键断流能力,同时也提供节点访问IP统计和URI的采样统计能力。每个功能配置独立的控制开关,默认关闭。所有参数配置为null可以恢复默认值。

开启流控功能会使请求在入口处直接阻塞,可以缓解节点高并发场景下的集群压力,降低P99时延,减少节点不可用的风险。

  • HTTP/HTTPS流控
    • HTTP/HTTPS黑白名单设置IP和子网控制客户端IP访问,如果节点IP在黑名单中,则该客户端的连接将直接中断,节点不会处理任何请求。白名单规则优先于黑名单规则,如果客户端IP在黑白名单中都出现,客户端请求将不会被拒绝。
    • HTTP/HTTPS并发连接数流控通过限制节点每秒中的HTTP连接总数来限制节点流量。
    • HTTP/HTTPS新建连接数流控通过限制节点新建的连接数来限制节点流量。
  • 内存流控基于节点堆内存使用量限制请求Path,支持设置内存流控白名单、全局内存使用阈值和基于单个Path设置堆内存使用阈值。全局内存流控阈值优先于单个Path内存阈值,白名单配置Path不参与内存流控。
  • Path全局免流控白名单可以根据客户需要,设置Path白名单全局免流控,当用户需要自定义插件时,可适当配置。
  • 请求采样统计可以记录客户端IP的访问数量和采样用户的请求Path,用户可以基于统计值识别客户端IP的访问流量和分析哪些请求Path访问量大。
  • 流量控制提供单独的流量统计查看接口,记录触发流控的数量,用户可以基于统计值评估流控配置阈值和衡量集群压力。
  • 访问日志可以记录一段时间内节点接收的HTTP/HTTPS请求URL和Body,用户可以基于访问日志信息分析当前的流量压力。
  • CPU流控基于节点配置的最大CPU占用率来限制节点访问流量。
  • 一键断流可以切断节点的所有访问流量,不包括kibana访问和elasticsearch monitor类接口。

约束限制

  • 目前仅7.6.2版本支持流量控制特性。
  • 开启流量控制功能会消耗部分节点性能。
  • 开启流控会直接拒绝超过阈值的用户请求。
  • 内存流控和CPU流控都是基于请求Path的流控,Path长度和个数不应该配置过多,否则影响集群性能。