Aperture 项目介绍
项目概述
Aperture 是一个分布式负载管理平台,旨在帮助云应用实现请求的速率限制、缓存及优先级排序。通过利用分布式计数器、观测能力和一个全球控制平面,Aperture 提供了一整套负载管理功能。这些功能不仅提升了云应用的可靠性和性能,还能优化成本和资源使用。
主要功能
- 全局速率和并发限制:Aperture 的高性能分布式速率限制器保护 API 和特性防止过度使用。它能通过细致的标签识别单个用户或实体,创建精确的速率限制器。
- API 配额管理:通过全局令牌桶和智能请求排队,确保外部服务使用量保持在指定速率内,避免惩罚或附加费用。
- 并发控制和优先级排序:限制并发请求数量,额外请求将根据其优先级在容量可用时被依次处理。
- 工作负载优先级:通过战略性地优先排序工作负载,确保关键用户体验路径和对外部 API 的优先访问。
- 缓存:通过缓存高耗时操作,避免重复请求从而提高应用性能并降低成本。
集成及使用
Aperture 支持通过 SDK 轻松集成到您的应用中,具体步骤为:
- 定义标签:在您的应用中定义标签,以识别用户、实体或功能。
- 包装工作负载:使用
startFlow
和endFlow
方法在您的应用中为特定功能或代码段建立控制点。 - 配置及监控策略:通过策略控制请求的速率、并发量和优先级。
此外,Aperture 还能与 API 网关、服务网格和应用中间件等现有控制点相集成。
开始使用
Aperture 云服务
您可以通过注册 Aperture 云服务来免费试用。Aperture 云服务由 FluxNinja 完全托管,无需自主管理基础设施。通过云服务,您可以使用 SDK 来集成您的应用。
本地 Kubernetes 环境
想要在本地 Kubernetes 环境中尝试 Aperture,您可以参考 Playground 文档。
学习和支持
贡献与改进
参与开源项目的发展是对 Aperture 最好的支持。通过报告 bug 和提出 功能请求,帮助我们改进 Aperture 的可靠性和用户友好性。如果您想贡献代码,请阅读 贡献指南。