ekit-concurrency

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 14, 2026 License: MIT

README

ekit-concurrency

并发与流控原语——safe-go goroutine、键控闸门、扇出、令牌桶、重试轮询。零内部依赖。

本仓库是 ekit(git.enjoye.top/enjoydream/ekit v0.34.0) 拆分出的独立 Go module,属于 yi-nology ekit 子项目矩阵(Round-2 深拆粒度)。

安装

go get github.com/yi-nology/ekit-concurrency@v0.1.0

包清单

  • async/ — GoSafe 系列(GoSafe/GoSafeWithErr/GoWithContext...),panic recover + 可注入 panic handler
  • group/ — 并发分组编排
  • singleflight/ — 单飞去重
  • progress/ — 多阶段进度追踪
  • syncx/ — 键控闸门(KeyedLimiter)/扇出
  • ratelimit/ — 令牌桶限流
  • retry/ — 重试/轮询

依赖关系

子项目矩阵与依赖方向(自底向上,19 仓):

ekit-core            文本/数据工具 + governance/lifecycle/version      (零内部依赖)
ekit-concurrency     并发与流控原语                                     (零内部依赖)
ekit-logx            日志门面 + shutdown                                (零内部依赖)
ekit-istio           Istio Proxyless                                    (零内部依赖)
  ekit-metrics       Prometheus 门面                          → core
  ekit-tracing       OTel + traceid                           → logx
  ekit-registry      注册发现 + 配置                          → core, logx
    ekit-data        缓存抽象 + 定时任务                      → core, logx, concurrency
      ekit-gorm      SQL/GORM 全家                            → core, logx
      ekit-redis     Redis 全家                               → data, core, logx
    ekit-httpx       HTTP 客户端 + 负载均衡                   → core, concurrency, logx, metrics, tracing, registry
      ekit-nns       服务治理客户端                           → httpx, registry, core, logx, tracing, metrics
        ekit-bootstrap 应用引导
    ekit-middleware  Hertz 中间件栈                           → core, concurrency, logx, metrics, tracing, registry
    ekit-hertz       Hertz 运行时/适配/instrumentation        → middleware, gorm, nns, registry, metrics, tracing, logx, core
    ekit-kitex       Kitex 生态                               → nns, registry, core, concurrency, logx, metrics
  ekit-workflow      流程编排                                 → concurrency, logx

注:ekit-observability 已在 Round-2 深拆中解散——logx 迁 [ekit-logx]、metrics 迁 [ekit-metrics]、 tracing/traceid 迁 [ekit-tracing]、shutdown 迁 [ekit-logx];原仓库已归档。

本仓库为 L0 地基,不依赖矩阵内其他模块;第三方仅 golang.org/x/time。

与 ekit 单体仓库的关系

  • 代码与 ekit v0.34.0 等价,module 路径 git.enjoye.top/enjoydream/ekit/... → github.com/yi-nology/ekit-concurrency/...
  • 各子仓库独立发版(SemVer);开发规范沿用 ekit AGENTS.md 约定

License

见 LICENSE

Directories

Path Synopsis
Package async 提供安全的 goroutine 启动工具。
Package async 提供安全的 goroutine 启动工具。
Package group 提供并发 Actor 生命周期管理和 WaitGroup 封装。
Package group 提供并发 Actor 生命周期管理和 WaitGroup 封装。
Package progress 提供多阶段工作流的进度追踪模型。
Package progress 提供多阶段工作流的进度追踪模型。
Package ratelimit 提供通用限流器实现。
Package ratelimit 提供通用限流器实现。
Package retry 可取消的重试与轮询原语(stdlib-only):带退避的动作重试 + 到 deadline 为止的条件轮询。
Package retry 可取消的重试与轮询原语(stdlib-only):带退避的动作重试 + 到 deadline 为止的条件轮询。
Package singleflight 提供并发请求合并(防击穿)工具。
Package singleflight 提供并发请求合并(防击穿)工具。
Package syncx 并发编排原语(stdlib-only):按键在飞闸门 + 按序扇出收集。
Package syncx 并发编排原语(stdlib-only):按键在飞闸门 + 按序扇出收集。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL