34 lines
1.4 KiB
Markdown
34 lines
1.4 KiB
Markdown
## 想法
|
||
暴露一些端点,提供一些功能。
|
||
|
||
1. http-cache
|
||
|
||
2. RateLimiter
|
||
|
||
3. ... ...
|
||
|
||
### 不是用网关,单体应用
|
||
拦截器处理,基于 redis 的 cache 时间或者 RateLimiter处理。
|
||
|
||
结构:serviceName:http-cache:/user/1?queryString If-Modified-Since
|
||
结构:serviceName:RateLimiter:/user/1 99
|
||
|
||
### 使用网关
|
||
将端点信息存储到 redis 里,供 网关使用。
|
||
结构:serviceName:http-cache:endpoint:/user/{id} 100s
|
||
|
||
结构:serviceName:RateLimiter:endpoint:/user/{id} 100/s
|
||
|
||
## RateLimiter Headers
|
||
```text
|
||
#=============================#===================================================#
|
||
# HTTP Header # Description #
|
||
#=============================#===================================================#
|
||
| X-RateLimit-Limit | Request limit per day / per 5 minutes |
|
||
+-----------------------------+---------------------------------------------------+
|
||
| X-RateLimit-Remaining | The number of requests left for the time window |
|
||
+-----------------------------+---------------------------------------------------+
|
||
| X-RateLimit-Reset | The remaining window before the rate limit resets |
|
||
| | in UTC epoch seconds |
|
||
+-----------------------------+---------------------------------------------------+
|
||
``` |