GoShield—Go语言统一弹性工具包

基本信息

案例ID:241921

技术顾问:向右 - 10年经验 - 同程旅游

联系沟通

微信扫码,建群沟通

项目名称:GoShield—Go语言统一弹性工具包

所属行业:金融 - 保险

->查看更多案例

案例介绍

GoShield是一个Go语言的统一弹性(Resilience)工具包,灵感来自Java的Resilience4j和.NET的Polly,为Go微服务提供生产级的容错能力。
在分布式系统中,服务间调用面临网络抖动、下游过载、瞬时故障等问题。GoShield提供了7种可组合的弹性模式:
Circuit Breaker(熔断器):当下游错误率超过阈值时自动熔断,防止级联故障。支持Closed/Open/HalfOpen三种状态机
Retry(重试):支持固定间隔、指数退避、斐波那契退避三种策略,可配置最大重试次数和可重试错误类型
Rate Limiter(限流):令牌桶和滑动窗口两种实现,支持突发流量处理
Timeout(超时):强制操作时间限制,防止慢请求占用资源
Bulkhead(隔舱):限制并发执行数,防止资源耗尽
Fallback(降级):当操作失败时提供兜底响应
组合模式:支持链式组合多种弹性策略,构建复杂的容错逻辑
技术亮点:
内置Prometheus指标,所有弹性模式自动暴露metrics
提供net/http中间件,一行代码接入HTTP服务
支持JSON配置文件 + 环境变量覆盖,支持热重载
完整的测试覆盖和性能基准测试
技术栈:Go 1.22+、Prometheus、Docker、GitHub Actions CI
个人负责:独立完成架构设计、7种弹性模式的实现、HTTP中间件开发、配置系统设计、文档编写。参考了Resilience4j的设计理念,但针对Go的goroutine模型做了原生适配。

发布任务

企业点击发布任务,工程师会在任务下报名,招聘专员也会在1小时内与您联系,1小时内精准确定人才

微信接收人才推送

关注猿急送微信平台,接收实时人才推送

接收人才推送
联系需求方端客服
联系需求方端客服