特使率限制配置

时间:2018-05-28 12:11:42

标签: grpc rate-limiting ratelimit envoyproxy

我试图弄清楚如何在前面使用其他服务设置速率限制。

我提到了他们的文档,但无法看到配置实际如何工作。还遇到lyft ratelimit但是这里也没有指定如何使用此配置。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

Envoy的速率限制过滤器依赖于全局gRPC速率限制服务,例如Lyft的参考实现。要使用它们,您必须进行构建。值得庆幸的是,有一个贡献者合并到了您可以使用的Dockerfile中,但是您需要添加CMD ./bin/ratelimit来告诉Docker映像启动时运行。

解释速率限制过滤器的最简单方法是,它允许与在实际速率限制服务中配置的规则匹配(即,速率限制实际上未在Envoy配置中设置)

例如,给定网络速率限制过滤器配置:

- name: envoy.ratelimit
  typed_config:
    "@type": "type.googleapis.com/envoy.config.filter.network.rate_limit.v2.RateLimit"
    stat_prefix: ratelimiter
    domain: myservice-ratelimiter
    descriptors:
    - entries:
      - key: path
        value: "/"
    failure_mode_deny: true
    rate_limit_service:
      grpc_service:
        envoy_grpc:
          cluster_name: my-ratelimit-cluster # define a Cluster pointing to the ratelimit service

然后您可以按以下方式配置Lyft的速率限制服务(请参阅Lyft的示例docs):

domain: myservice-ratelimiter
descriptors:
  - key: path
    value: "/"
    rate_limit:
      unit: second
      requests_per_unit: 50

HTTP速率限制过滤器的配置看起来略有不同,但这应该使您指向正确的方向。