Конфигурация ограничения скорости посланника

Я пытаюсь выяснить, как установить лимит скорости во фронт-посланнике для других служб.

Я сослался на их документацию, но не смог увидеть, как на самом деле работает конфигурация. Также наткнулся на lyft ratelimit, но здесь также как использовать этот конфиг не указано.

Кто-нибудь может мне помочь с этим?

0 ответов

Фильтр ограничения скорости 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

Затем вы можете настроить службу ratelimit Lyft следующим образом (см. Пример Lyft config.yaml):

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

Конфигурация фильтра ограничения скорости HTTP выглядит несколько иначе, но это должно указать вам правильное направление.

Другие вопросы по тегам