envoy rate limit介绍
envoy中有以下限速方式:
- 全局限速
Envoy的全局请求限速服务器,检查是否接受。
全局意味着所有代理都将使用一个计数器作为评估请求的基础。
每个代理都请求一个上游速率限制服务(在此示例中为Lyfts),该服务将在envoy外部运行以决定请求。
- 本地限速
本地速率限制计数器在处理请求的单个envoy代理的上下文中运行。这意味着每个代理都跟踪其管理的连接并应用限速策略(即熔断)
最新的版本添加了一个使用自身令牌桶进行本地限速功能(pr 9354)
环境准备
安装envoy
brew tap tetratelabs/getenvoybrew install getenvoy
启动redis
docker run -p 6379:6379 redis
启动上游服务
python -m SimpleHTTPServer 1234
使用lyft/ratelimit进行限速
启动ratelimit
export USE_STATSD=false export LOG_LEVEL=debug export REDIS_SOCKET_TYPE=tcp export REDIS_URL=localhost:6379 export RUNTIME_ROOT="./" export RUNTIME_SUBDIRECTORY=ratelimitgit clone https://github.com/lyft/ratelimit.gitcat >> config.yaml
启动envoy
cat >> config.yaml
验证
前两次正常,第三次发现返回429,限速正常
$ curl -I -H 'HOST: ratelimiter' 127.0.0.1:10000HTTP/1.1 429 Too Many Requestsx-envoy-ratelimited: truedate: Tue, 14 Jan 2020 07:14:35 GMTserver: envoytransfer-encoding: chunked
本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.sosokankan.com/article/2221920.html
赞 (0)
打赏 微信扫一扫
AutoVis大数据可视化设计框架:让大数据可视化容易点
« 上一篇2020-01-14 23:55:10
淘宝好学发布热销好课“2019年度榜单”丨知识付费
下一篇 »2020-01-15 03:25:13