Конфигурация ограничения скорости посланника
Я пытаюсь выяснить, как установить лимит скорости во фронт-посланнике для других служб.
Я сослался на их документацию, но не смог увидеть, как на самом деле работает конфигурация. Также наткнулся на 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 выглядит несколько иначе, но это должно указать вам правильное направление.