Envoy速率限制配置

3

我正在努力弄清楚如何在front-envoy中为其他服务设置速率限制。

我参考了他们的文档,但无法看到配置实际上是如何工作的。我也找到了lyft ratelimit,但这里也没有说明如何使用此配置。

有人能帮帮我吗?


1
这里有一份指南,是某人创建的链接,可能对你有所帮助。 - Amith Sewnarain
1个回答

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的示例config.yaml):

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

配置HTTP速率限制过滤器的外观略有不同,但这应该会将您引向正确的方向。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接