跳转至

创建集群流控规则

流控规则熔断规则授权规则热点规则系统规则只能统计本地的资源调用信息,使用于单机应用。但是在如今的云原生时代下,很多应用都是部署在集群中,可能分布在不同的机器上。在分布式场景下,上述规则存在一些缺点。例如,路由到集群中每台机器的流量不均衡,可能尚未达到整个集群的阈值总和时,某一台机器就因此超出阈值而停止服务。

集群流控模式正是为了解决这种问题而设计的。在集群流控模式下,需要理解两个概念:

  • TokenServer: 统计集群中所有实例的 QPS 并进行加总求和,将总值与集群整体阈值(单机阈值✖️机器数量)进行比较。如果尚未达到集群整体的阈值,则向客户端发送 Token。
  • TokenClient:即应用分布在不同机器上的各个实例。客户端会向 TokenServer 请求 Token。如果能成功获得 Token,说明尚未达到整体阈值,该实例可以继续处理请求。如果不能获得 Token,表示已经达到了整体的阈值,对该实例的请求会直接失败。

Note

  • TokenSever 需要配置在 Nacos 的 public 命名空间,分组(Group)应为 SENTINEL_GROUP
  • TokenSever 是单点的,一旦 TokenSever 宕机,集群流控模式就会退化成单机限流模式。

创建集群流控规则的方式如下:

  1. 点击目标托管注册中心的名称,然后在左侧导航栏点击 微服务列表 ,在最右侧点击更多按钮选择 治理

    注意需要治理的微服务在 是否可以治理 一栏应该显示为,才能进行后续步骤。

    微服务列表

  2. 选择 集群流控 ,然后在右侧点击 创建集群流控

    微服务列表

  3. 参考下列说明填写规则配置,并在右下角点击 确定

    • 服务器名称:Token 服务器的名称
    • TokenServer IP:Token 服务器的 IP 地址
    • TokenServer 端口:Token 服务器的端口号
    • Client 选择:集群流控客户端,用于向所属 TokenServer 通信请求 Token。

      微服务列表

  4. 创建完成后可以在系统规则列表中查看新建的规则。在右侧点击更多按钮可以更新规则或者删除该规则。

    流控规则列表

评论