TNBLOG
首页
博客
视频
资源
问答
猿趣
手机
关于
搜索
收藏
便签
笔记
消息
创作
登录
剑轩
故如虹,知恩;故如月,知明
博主信息
排名
6
文章
6
粉丝
16
评论
8
文章类别
CSS
15篇
微服务
41篇
Git
14篇
.NET
102篇
移动开发
33篇
软件架构
23篇
.NET Core
119篇
.NET MVC
11篇
英语
3篇
随笔
86篇
Bootstrap
3篇
Redis
21篇
编辑器
10篇
Js相关
15篇
虚拟化
8篇
更多
Oracle
7篇
Python
14篇
数据库
26篇
EF
17篇
微信
3篇
前端
151篇
消息队列
6篇
docker
41篇
多线程
1篇
Java
4篇
软件基础
2篇
C++
2篇
WCF
7篇
Linux
7篇
nginx
5篇
K8S
9篇
ABP
2篇
最新文章
最新评价
{{item.articleTitle}}
{{item.blogName}}
:
{{item.content}}
关于我们
ICP备案 :
渝ICP备18016597号-1
网站信息:
2018-2024
TNBLOG.NET
技术交流:
群号656732739
联系我们:
contact@tnblog.net
欢迎加群
欢迎加群交流技术
原
.net core3.1使用API网关Ocelot三:请求缓存与限流
6339
人阅读
2020/8/31 17:13
总访问:
3912374
评论:
0
收藏:
0
手机
分类:
微服务
tn3#Ocelot要实现请求缓存非常的简单一句配置即可 Ocelot目前支持对下游服务的URL进行缓存,并可以设置一个以秒为单位的TTL使缓存过期。我们也可以通过调用Ocelot的管理API来清除某个Region的缓存。 为了在路由中使用缓存,需要在Route中加上如下设置: ``` "FileCacheOptions": { "TtlSeconds": 8 } ``` 这里表示缓存8秒,8秒后过期。在缓存没有过期之前拿到的都是缓存。 我这里就暂时不演示测试了,大家自己去尝试一下即可 在配置文件的配置效果如下: ![](https://img.tnblog.net/arcimg/aojiancc2/c5f063a552944946b07990c07609b4a0.png) <br/> tn3#Ocelot限流 (RateLimit) 对请求进行限流可以防止下游服务器因为访问过载而崩溃 Ocelot中限流配置如下: ``` //限流配置 "RateLimitOptions": { "ClientWhitelist": [ "axj" ], // 白名单 "EnableRateLimiting": true, // 是否启用限流 "Period": "10s", // 统计时间段:1s, 5m, 1h, 1d "PeriodTimespan": 10, // 多少秒之后客户端可以重试 "Limit": 5 // 在统计时间段内允许的最大请求数量 } ``` 意思就是10秒内只能请求5次不能在多了,如果超过5次就提示请求过多,然后在隔10分钟在发起请求 在配置文件中的配置效果如下: ![](https://img.tnblog.net/arcimg/aojiancc2/733e46c06d90485cad50eb08d46843e9.png) #####测试效果如下: 可以看到当在10秒钟内请求超过规定次数就提示请求数量过多 ![](https://img.tnblog.net/arcimg/aojiancc2/50a5369824a34ce1bc5bb51b7631931d.gif) #####当然限流还可以进行全局配置 比如请求超过配置的负载提示的话与返回的状态码都可以进行配置的 ``` //限流全局配置 "RateLimitOptions": { "DisableRateLimitHeaders": false, // Http头 X-Rate-Limit 和 Retry-After 是否禁用 "QuotaExceededMessage": "你的访问过于频繁请稍后在试", // 当请求过载被截断时返回的消息 "HttpStatusCode": 253, // 当请求过载被截断时返回的http status "ClientIdHeader": "client_id" // 用来识别客户端的请求头,默认是 ClientId } ``` #####用postman来测试一下 可以看到当我们填写上client_id是可以无限次数请求的 ![](https://img.tnblog.net/arcimg/aojiancc2/ccb844ef13ad4f658625434c8e815273.png) 如果我们去掉,也是会被限流的 ![](https://img.tnblog.net/arcimg/aojiancc2/418cdd288ecf4561ac46fe4dd2b37e02.png) <br/> 项目下载: https://download.tnblog.net/resource/index/3e2f58ea38ce44679ee1d28add4c4e2b
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
👈{{preArticle.title}}
👉{{nextArticle.title}}
评价
{{titleitem}}
{{titleitem}}
{{item.content}}
{{titleitem}}
{{titleitem}}
{{item.content}}