Gubernator:分布式限流服务的未来
项目介绍
Gubernator 是一款分布式、高性能、云原生且无状态的限流服务。它旨在为现代云环境提供一个简单、高效的限流解决方案。Gubernator 通过在集群中均匀分布限流请求,确保系统可以通过简单地增加节点来扩展。此外,Gubernator 不依赖外部缓存(如 memcached 或 Redis),因此无需与依赖服务进行部署同步,这使得在 Kubernetes 或 Nomad 等编排系统中动态扩展或缩减集群变得非常简单。
项目技术分析
技术架构
Gubernator 的核心架构设计遵循了分布式系统的最佳实践,主要包括以下几个方面:
- 无状态设计:Gubernator 不依赖磁盘存储,所有配置和状态信息都通过客户端请求传递,这使得服务在扩展和缩减时无需担心数据同步问题。
- 一致性哈希:通过一致性哈希算法,Gubernator 能够将请求均匀分布到集群中的各个节点,确保负载均衡。
- 批处理机制:Gubernator 支持批处理请求,这在大流量环境下可以显著提高吞吐量和降低延迟。
- 全局缓存:对于极高吞吐量的环境,Gubernator 提供了全局缓存选项,实现最终一致性。
限流算法
Gubernator 支持两种限流算法:
- 令牌桶算法:适用于需要处理突发流量的场景,一旦达到限流阈值,所有请求将被拒绝,直到限流周期重置。
- 漏桶算法:适用于需要持续流量的场景,即使达到限流阈值,请求仍会以恒定速率通过,不会完全阻塞。
项目及技术应用场景
Gubernator 适用于多种应用场景,特别是那些需要高性能、高可用性和动态扩展能力的系统。以下是一些典型的应用场景:
- API 限流:在微服务架构中,Gubernator 可以用于限制 API 请求速率,防止服务过载。
- 邮件发送限流:在邮件服务中,Gubernator 可以限制用户在特定时间段内发送的邮件数量,防止滥用。
- 分布式系统限流:在分布式系统中,Gubernator 可以用于全局限流,确保系统资源在多个服务之间公平分配。
项目特点
无状态配置
Gubernator 的无状态设计是其最大的特点之一。每个请求都包含限流配置,这虽然增加了请求的负载,但实际上限流配置仅由几个 64 位整数组成,对性能影响微乎其微。
高性能
在生产环境中,Gubernator 单节点可以处理超过 2000 次请求每秒,且大部分批处理响应时间在 1 毫秒以内。对于转发到主节点的请求,响应时间通常在 30 微秒以内。
灵活部署
Gubernator 可以作为独立服务运行,也可以作为服务的边车(Sidecar)部署,甚至可以直接作为库集成到现有服务中,提供了极大的灵活性。
易于扩展
由于不依赖外部缓存,Gubernator 的扩展非常简单,只需增加节点即可实现水平扩展。
多种行为模式
Gubernator 提供了多种行为模式,包括批处理、非批处理和全局缓存,用户可以根据实际需求选择最合适的模式。
总结
Gubernator 是一款设计精良、性能卓越的分布式限流服务,适用于各种需要高性能限流的场景。其无状态设计、高性能、灵活部署和易于扩展的特点,使其成为云原生应用的理想选择。无论你是开发微服务、邮件服务还是其他分布式系统,Gubernator 都能为你提供强大的限流支持。
立即尝试 Gubernator,体验分布式限流服务的未来!
# 下载 docker-compose 文件
$ curl -O https://raw.githubusercontent.com/mailgun/gubernator/master/docker-compose.yaml
# 运行 docker 容器
$ docker-compose up -d
现在,你可以通过 CURL 向 Gubernator 发送限流请求:
# 访问 HTTP API 接口
$ curl http://localhost:9080/v1/HealthCheck
# 发送限流请求
$ curl http://localhost:9080/v1/GetRateLimits \
--header 'Content-Type: application/json' \
--data '{
"requests": [
{
"name": "requests_per_sec",
"uniqueKey": "account:12345",
"hits": "1",
"limit": "10",
"duration": "1000"
}
]
}'
Gubernator,让你的限流服务更加高效、灵活和可靠!
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00