micro

module
v1.2.3 Latest Latest
Warning

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

Go to latest
Published: Mar 24, 2026 License: MIT

README

Bang Micro

Bang Micro 是一个面向生产环境的 Go 类库集,不是把所有能力塞进一个“大框架”。每个包都保持独立、显式生命周期和清晰边界,目标是让业务可以直接使用 micro,而不必先理解每个第三方 SDK 的坑点和默认行为。

设计取向

  • 不依赖导入时副作用。能不在 init() 做的事情,就不在 init() 做。
  • 公开 API 的生命周期显式化,启动、关闭、全局安装和请求级调用分开处理。
  • 对外运行时 API 统一要求非 nil context.Context,不静默回退到 context.Background()
  • 在包边界处清洗和克隆调用方输入,避免把调用方对象当成内部可变状态。
  • Prometheus 指标优先按需注册、可注入、可关闭,避免污染全局默认 registry。
  • 保留底层 SDK 能力,但用更干净的默认行为、日志、trace 和错误边界包起来。

文档

模块概览

Transport
  • httpx: 生产级 net/http 客户端与服务端封装。
  • grpcx: 干净的 gRPC 客户端、服务端与拦截器边界。
  • ginx: 基于 Gin 的服务端封装,统一 trace、metrics、recovery。
  • wsx: WebSocket 客户端、服务端、Hub、房间广播与订阅模型。
  • tcpx: 显式生命周期的 TCP 客户端与服务端封装。
  • udpx: 面向 datagram 的 UDP 封装。
Store
  • gormx: GORM 打开、连接池、trace、metrics、日志边界。
  • redisx: go-redis/v9 单节点客户端封装。
  • elasticsearchx: Elasticsearch v9 客户端封装。
  • opensearchx: 阿里云 OpenSearch 查询与搜索封装。
  • ossx: 阿里云 OSS 客户端封装。
Conf
  • viperx: 配置加载与环境变量覆盖。
  • envx: 环境模式识别与主机名辅助工具。
Telemetry
  • trace: OpenTelemetry TracerProvider 初始化与全局安装。
  • logger: 结构化日志与 trace 上下文注入。
Contrib
  • jwtx: 泛型 JWT 签发与解析封装。
  • discovery: Nacos naming client 封装。
  • mqtt: MQTT 客户端封装,兼容阿里云 MQTT 鉴权模式。
  • rmq: RocketMQ 5 Producer / SimpleConsumer 封装。
  • alipay: 支付宝支付封装。
  • wechat: 微信支付 v3 封装。
  • sms: 阿里云短信封装。
Runtime
  • pool: 有界 goroutine 池与显式背压模型。

安装

go get github.com/bang-go/micro

使用建议

  • 只想拿到 TracerProvider 而不改全局,用 telemetry/trace.Open;需要设置全局 tracer,再用 telemetry/trace.InitTracer
  • 需要隔离 Prometheus registry 的包,优先注入 MetricsRegisterer;明确不需要指标时,用 DisableMetrics
  • 如果公开方法接收 context.Context,就传业务上下文,不要传 nil。
  • 如果你已经熟悉底层 SDK,可以直接拿原始客户端;大多数封装都保留了 Raw() 或等价入口。

License

MIT

Jump to

Keyboard shortcuts

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