ApiFlow
目录
API 流提案
举例来说,我将详细描述用户向 /servers 模块发送的 POST 请求。 历史上,这是一个非常密集且受到大量监控的操作,因此施加了严格的速率限制。
HTTP API 身份验证中间件
- 已经存在
- nova.api.openstack.auth:AuthMiddleware
- 无需提议更改。
HTTP API 速率限制中间件
- 已经存在
- nova.api.openstack.ratelimiting:RateLimitingMiddleware
- 建议的变更
- 这个中间件是为了防止 HTTP API 服务器过载而存在的。 因此,似乎不应该根据计算 API 的负载/能力进行速率限制。 我建议该层仅处理以下限制
- 每个用户的请求数量
- 每个项目的请求数量
- 这个中间件是为了防止 HTTP API 服务器过载而存在的。 因此,似乎不应该根据计算 API 的负载/能力进行速率限制。 我建议该层仅处理以下限制
- 需要更改为在数据库中存储统计信息,以便进行多节点部署。
计算 API 身份验证
- 已经存在...某种程度上...
- RequestContext 会被传入并在某些情况下使用
- 建议的变更
- 不存在未经验证的请求。
- 上下文应该在每个计算 API 调用中完全填充并验证。
- 身份验证失败时应引发标准异常。
计算 API 配额检查
- 已经存在。
- 在许多调用中,例如 create(),会检查配额。
- 无需提议更改。
计算 API 速率限制
- 不存在
- 需要存储数据库中的信息,以便进行多节点部署。
- 处理
- 每个用户的 create() 调用数量
- 每个用户的 delete() 调用数量
- 每个项目的 create() 调用数量
- 每个项目的 delete() 调用数量
- 等等...
